synology.forum архив спільноти · 2005–2022
ai.synology.forum →
ГлавнаяУправление Системой › Synology Monitoring (аналог cacti, zabbix, etc...) альфа версия

Synology Monitoring (аналог cacti, zabbix, etc...) альфа версия

Bloody · 03.04.2016

С легкой подачи SergeyASV и при его непосредственном участии в разработке/тестировании, была написана простенькая система для мониторинга основных параметров NAS Synology - температуры, загрузки сети/процессора, а так же подключенного ИБП - напряжение, нагрузка, заряд батареи. До навороченных систем типа Cacti этому проекту как до луны :rolleyes: Но как некая альтернатива - вполне. Всем желающим потестировать/помочь в развитии(советы, пожелания) буду рад.

 

На текущий момент планируется развитие возможностей "установщика" для минимизации действий конечного пользователя, для чего необходима такая информация, как модель Synology и результат работы скрипта сбора информации через SNMP.

 

Важно! Конфиг настроен для работы с DS214play и бесперебойником на 540 Ватт(мощность правится в файле conf.php). Могут наблюдаться проблемы со снятием показаний с температурных датчиков.

 

Итак, для всех заинтересованных набросал небольшую пошаговую инструкцию.

1. Заходим в веб-интерфейс управления Synology

2. Включаем Web Station на Synology (Панель управления -> Веб-службы). На DSM 6 необходимо наличие пакета Web Station, устанавливается из стандартного репозитория.

3. Распаковываем содержимое архива в папку "web" (создается в корне дискового раздела при запуске Web Station). В папке "web" должно получиться 3 папки - "jpgraph", "log" и "mon"

4. Открываем в веб-браузере страницу http://192.168.1.50/mon/install/ (192.168.1.50 - адрес Вашего Synology в локальной сети) для дальнейших инструкций

 

04.04.2016 <- устаревшая версия, больше не развивается.

Подготовил 3 сборки для установки. Выбирайте в зависимости от количества мест под диски в системе.

Инструкция по дальнейшей установке находится по адресу http://192.168.1.50/mon/install.php (192.168.1.50 - адрес Вашего Synology в локальной сети)

Для однодисковой модели Для двухдисковой модели Для четырехдисковой модели

 

28.04.2016

Для текущих пользователей, использующих БД MySQL, на первой странице достаточно будет ввести свои текущие логин/пароль пользователя, отметив соответствующий чекбокс. Предыдущую папку mon желательно переименовать, что бы ничего не сломалось.

После создания нового пользователя, его логин-пароль можно будет найти в /mon/lib/conf_serv.xml (для повторной настройки системы).

Мониторинг с инсталлятором

 

15.07.2016

Добавил возможность сохранения текущей конфигурации, и базы данных(как MySQL, так и текстовых логов) - соответствующие ссылки появятся в самом низу страницы с графиками.

Теперь в процессе конфигурирования системы можно выбрать тип данных для хранения в БД MySQL(целое число, или со знаком после запятой). Если повторно запустить конфигуратор, то при изменении типа данных, он так же изменится у текущих таблиц в базе данных.

Доступны для скачивания две версии(в формате *.tar.gz). Для корректной работы системы, распаковку архивов необходимо производить либо на *nix системе, либо на самом Synology, иначе потеряются необходимые разрешения для определенных файлов/папок. Для корректной работы системы необходимы следующие права доступа на файлы/папки(mon, log, jpgraph):

Имя пользователя(owner) - http, группа(group) - users, 644 права на все файлы(с помощью WinSCP быстро это делается так). 744 права на все папки(и те, что внутри папок). Для папки log права на папку 775.

 

-> Полная версия для чистой установки. Первоначальный запуск производится всё так же, по адресу http://192.168.1.50/mon/install/ (192.168.1.50 - адрес Вашего Synology в локальной сети)

-> Версия для обновления предыдущей установки от 28.04.2016. Просто распаковать содержимое в папку web. Старые настройки/логи при этом сохранятся. Но(внимание!), если относительно предыдущей версии вносились какие то правки в рабочие файлы, или изменялся установочный конфиг(mon\install\lib\install.xml), то они будут заменены. Переименуйте старую папку mon, что бы не потерять эти изменения, и свяжитесь со мной, что бы внести ваши изменения в новую сборку.

 

10.11.2017

Обеспечена совместимость с MariaDB 10. Необходимые порт и сокет указываются в мастере первоначальной настройки.

Новому пользователю БД дополнительно предоставляются права "LOCK TABLES", позволяющие произвести корректный экспорт текущей базы данных.

-> Полная версия для чистой установки.

-> Перевод предыдущей версии на MariaDB 10 возможен только через ручную правку скриптов и настроек.

 

18.06.2018

Работа с текстовыми логами более не поддерживается ввиду высокой нагрузки на сервер и сложностью их обработки.

Добавлен новый тип отображения данных "24 часа", выдающий данные за последние 24 часа :) "Листание" стрелочками передвигает данные с шагом в 12 часов.

Новая кнопка [квадратик/stop] позволяет быстро вернуться в сегодняшний день.

Небольшие косметические доработки.

-> Полная версия для чистой установки.

-> Версия для обновления предыдущей установки от 10.11.2017. Осторожно, все ваши правки скриптов могут быть потеряны!

 

Внешний вид на текущий момент:

Synology_Monitoring.png

 

В связи с изменением политики шаринга файлов в дропбоксе, все мои ссылки в этой теме протухли. Расшариваю папку дропбокса, в которой можно найти все файлы, на которые я ссылался в этой теме.

niks · 04.04.2016
С легкой подачи SergeyASV и при его непосредственном участии в разработке/тестировании, была написана простенькая система для мониторинга основных параметров NAS Synology - температуры, загрузки сети/процессора, а так же подключенного ИБП - напряжение, нагрузка, заряд батареи. До навороченных систем типа Cacti этому проекту как до луны :rolleyes: Но как некая альтернатива - вполне. Всем желающим потестировать/помочь в развитии(советы, пожелания) буду рад.

 

На текущий момент планируется развитие возможностей "установщика" для минимизации действий конечного пользователя, для чего необходима такая информация, как модель Synology и результат работы скрипта сбора информации через SNMP.

 

Итак, для всех заинтересованных набросал небольшую пошаговую инструкцию.

 

Архив с необходимыми файлами.

 

Добро пожаловать!

Будем тестить.

Imperator · 04.04.2016

Можно скриншоты конечного результата? Чтобы понять нужно ли это.

niks · 04.04.2016
Можно скриншоты конечного результата? Чтобы понять нужно ли это.

 

Так SergeyASV Здесь показывал свои скриншоты. Мне так очень понравилось. До этого делал через kacti и показалось что сильно грузит систему.

 

SergeyASV · 04.04.2016
Можно скриншоты конечного результата? Чтобы понять нужно ли это.

 

Моя версия выглядит так:

но все меняется ;)

http://i013.radikal.ru/1604/16/6cec15ddbc42.png

SergeyASV · 04.04.2016

Bloody

И че это альфа? вполне работоспособная бета :D

и в названии не плохо бы указать, что есть возможность мониторить любое оборудование с поддержкой SNMP.

Bloody · 04.04.2016
в названии не плохо бы указать

Не вижу возможности изменить название темы.

 

есть возможность мониторить любое оборудование с поддержкой SNMP

Модульности пока не особо хватает, поэтому каждый дополнительный параметр для отслеживания приходится "впиливать". Если учесть, что данная система, по сути, рисует графики по данным "время - значение", то и не важно, как они получены.

SergeyASV · 04.04.2016

Bloody

не важно, как они получены.

Зато звучит гордо :D

Imperator · 04.04.2016

Пожелания принимаются? В принципе устраивает. Но дисков 4, файлы температуры содержат только дату и время, батарея тоже фигню пишет. Что предоставить требуется?

 

И хотелось бы избежать дублирования в txt и в бд, плюс очистка от старых данных.

Siroc-co · 04.04.2016
До навороченных систем типа Cacti этому проекту как до луны :rolleyes: Но как некая альтернатива - вполне.

Да в задницу все эти "Кактусы". Крутится у меня в докере кактус, и что? Его запаришься настраивать, этот дизайн из девяностых..., куча какой-то сомнительной функциональности, которая зачем вообще нужна? Всё что надо - это простенькое отображение основных параметров, без излишнего гемора с настройками.

Так понимаю, рисуете средствами JpGraph? Думаю, можно будет отрисовать и чем-то другим, для улучшения "красоты", например Highcharts.

sidor_ii · 04.04.2016
Да в задницу все эти "Кактусы".

Вы просто не умеете его готовить.... ;)

Раньше тоже в докере кактус работал, сейчас докер снес нафиг.

Поставил пакет debian chroot не нарадуюсь, какие возможности открываются.

Под chroot идеально встал кактус.

Bloody · 05.04.2016
...дисков 4, файлы температуры содержат только дату и время, батарея тоже фигню пишет. Что предоставить требуется?

И хотелось бы избежать дублирования в txt и в бд, плюс очистка от старых данных.

По дискам действительно наблюдается проблема. Необходимо искать OID`ы своих дисков в соответствии с данным документом.

Батарея фигню рисует, или графики загрузки ИБП? Если второе, то в файле conf.php нужно поправить коэффициент $upscoeff в соответствии со своим ИБП. Вычисляется этот коэффициент как эффективная мощность ИБП, деленная на 100. То есть для APC Back-UPS Pro 900VA коэффициент будет 5.4(а не 9), так как его эффективная мощность - 540 Ватт.

К дублированию относитесь как к бэкапу данных на случай выхода из строя БД. Изначально проект работал чисто на TXT-файлах, впоследствии дорос и до БД. Если мешают - в планировщике задач измените задачу снятия логов таким образом, что бы данные писались только в БД.

Очистка насколько старых данных? Если мы говорим про удаление "пустых" данных, то такую кнопку(для полного удаления истории) к каждому графику можно прикрутить.

 

Siroc-co, JpGraph был выбран не случайно. Упомянутый Highcharts и некоторые прочие тоже рассматривались в качестве альтернативы. Проблема - количество точек и вытекающая отсюда производительность. При снятии логов раз в 5 минут, за неделю набегает более 2000 точек. За месяц - более 8000. Highcharts начинает загибаться уже от 500 точек, да и работает он на стороне клиента. То есть для каждого графика необходимо отправить многокилобайтный файл, который должен обработаться на стороне клиента и показать картинку.

Imperator · 05.04.2016

Устройство DS413j.

Диски 1.3.6.1.4.1.6574.2.1.1.6.0 - 3 проверил утилитой от prtg работают все 4.

battery.txt - 04/04/16 13:40 Instance и так все записи. На графике ошибка.

cpu0_temp.txt и cpu1_temp.txt содержат только дату и время. Наверное у меня проц одноядерный и из-за этого.

 

Удаление старых за год, наверное.

 

Ещё пожелание - пароль к БД прописать в переменной в скрипте чтобы в каждом запросе не вписывать.

SergeyASV · 05.04.2016

Imperator

Путь до температуры у НАС-ов разных моделей разный. В сборщике логов надо прописывать для своей модели. Можно глянуть по этим путям.

 

cat /sys/class/hwmon/hwmon0/device/temp?_input

или

cat /sys/devices/platform/coretemp.0/temp?_input

 

и не факт что на всех процессрах установлен сенсор температурный, например в 212J нету.

Удаление старых за год, наверное.

Зачем? наоборот интересно сравнить, а данные особо много места не занимают.

Ещё пожелание - пароль к БД прописать в переменной в скрипте

так он и прописывается туда.

 

 

Imperator · 05.04.2016

Сейчас пароль прописывается много раз в скрипте, хотелось бы всего один.

 

Ни coretemp ни hwmon нет.

SergeyASV · 05.04.2016

Тогда не догоняю о чем речь я про пароль.

 

у моего наса доступ к термодатчику

/sys/devices/platform/a375-temp.0/temp1_input

115 модель.

 

можно еще тут посмотреть по температуре.

Bloody · 05.04.2016

SergeyASV, он про bash скрипт.

 

Imperator, данные команды что показывают?

snmpwalk -Ov -v 2c -c public 127.0.0.1 1.3.6.1.4.1.6574.2.1.1.6.0
snmpwalk -Ov -v 2c -c public 127.0.0.1 1.3.6.1.4.1.6574.4.3.1.1.0

Imperator · 05.04.2016

snmpwalk -Ov -v 2c -c public 127.0.0.1 1.3.6.1.4.1.6574.2.1.1.6.0

INTEGER: 42

 

snmpwalk -Ov -v 2c -c public 127.0.0.1 1.3.6.1.4.1.6574.4.3.1.1.0

No Such Instance currently exists at this OID

 

snmpwalk -Ov -v 2c -c public 127.0.0.1 1.3.6.1.4.1.6574.2.1.1.6.1

INTEGER: 42

snmpwalk -Ov -v 2c -c public 127.0.0.1 1.3.6.1.4.1.6574.2.1.1.6.2

INTEGER: 42

snmpwalk -Ov -v 2c -c public 127.0.0.1 1.3.6.1.4.1.6574.2.1.1.6.3

INTEGER: 40

 

Совпадают с данными диспетчера хранения, только тот, что на 3 заканчивается он первым показан.

 

 

Bloody · 05.04.2016

snmpwalk -Ov -v 2c -c public 127.0.0.1 1.3.6.1.4.1.6574.2.1.1.6.0

INTEGER: 31

 

Работает аналогично. А в "текстовом" режиме работы сайта(слева внизу переключатель) тоже графики температур жестких не рисуются?

 

Судя по описанию процессора в Вашем НАСе, термодатчик у него есть. Вопрос только, берутся ли с него данные в DSM, и где они лежат. Я свою нашел, перебирая все найденные файлы по шаблону *temp* в файловой системе NAS`а, но это может показаться геморойным :)

 

Для батареи строку snmpwalk... заменить на(очередное спасибо SergeyASV):

battery=$(upsc ups | grep battery.charge: | cut -d" " -f2)

В 6 версии DSM что то намудрили с SNMP, не хочет опрашивать бесперебойник.

Imperator · 05.04.2016

Графики жёстких рисуются, но всего два, а хотелось бы четыре. Скрипт доделать не проблема, но вот php для меня тёмный лес.

Батарею завтра проверю - это рабочий NAS.

Bloody · 05.04.2016
Графики жёстких рисуются, но всего два, а хотелось бы четыре. Скрипт доделать не проблема

Вот пакет файлов под 4 HDD. После изменения bash - скрипта, необходимо дождаться, пока не появятся текстовые лог - файлы. Затем на странице установки (http://192.168.1.50/mon/install.php) нажать кнопку "Заполнить базу данных". Должны создаться необходимые таблицы в БД под новые данные. Старые данные не затронутся - просто вылетит ошибка "не удалось создать таблицу...".

Imperator · 06.04.2016

Кнопка "Заполнить базу данных" только создаёт пустые таблицы или и заполняет их данными из текстовых файлов? По описанию втрое, а делает только первое.

Bloody · 06.04.2016

Логика такая - перебираются все текстовые файлы, лежащие в папке log. Для каждого файла проводится процедура: по имени файла создается таблица в БД и, если не было ошибок(таблица уже существует, или еще что), заполняется данными из текстового файла. Скрипт писался в первую очередь для переноса имеющихся данных при миграции от "текстовой" версии к версии с БД.

Imperator · 06.04.2016

У меня только создаются, но пустые. В принципе не критично, просто для информации.

 

Поиск по *temp* ничего не дал. Как вообще из отображения убрать температуру процессора?

 

4 диска нормально отобразились.

Bloody · 06.04.2016

В conf_indx.php найти строки:

    'temperatures2' => [
        'mNum' => 4,
        'mNameNum' => [ 0 => 4, 1 => 6, 2 => 8, 3 => 9, 4 => 10, 5 => 11, ],
    ],

и заменить на:

    'temperatures2' => [
        'mNum' => 4,
        'mNameNum' => [ 0 => 6, 1 => 8, 2 => 9, 3 => 10, 4 => 11, ],
    ],

 

создаются, но пустые

Не обратили внимание, что выдало после нажатия кнопки "заполнить..."? Ошибки и количество созданных строк должны быть.

Imperator · 06.04.2016

Ошибок не было (кроме уже созданных) количество - 0.

niks · 06.04.2016
У меня только создаются, но пустые. В принципе не критично, просто для информации.

 

Поиск по *temp* ничего не дал. Как вообще из отображения убрать температуру процессора?

 

4 диска нормально отобразились.

Если папка с логами находится в папке lib то все заполняется.

 

Bloody · 06.04.2016

Есть подозрение, что файлы были пусты, или какие-то заморочки с правами доступа к файлам, что скрипт не смог их прочитать.

Imperator · 06.04.2016

Папка с логами находится в корне, это и в скрипте прописано.

 

С правами доступа странно - ведь другой скрипт их читает и отображает на графике если выбрать режим txt.

 

Пожелание - графики температуры hdd часто накладываются друг на друга, хотелось бы чтобы было видно оба, а не только "верхний".

Bloody · 06.04.2016
чтобы было видно оба

Править логику работы JpGraph нет никакого желания ;) Да и не представляю, как это может выглядеть. Можно изменить порядок вывода линий на график, но всё равно какая-либо из линий будет выше остальных.

 

Названия линий на графике(слева от графика) кликабельные, позволяют отображать не все линии сразу, а только нужные.

niks · 06.04.2016
Папка с логами находится в корне, это и в скрипте прописано.

 

С правами доступа странно - ведь другой скрипт их читает и отображает на графике если выбрать режим txt.

 

Пожелание - графики температуры hdd часто накладываются друг на друга, хотелось бы чтобы было видно оба, а не только "верхний".

а все таки попробуйте скопировать папку с логами в lib и запустите заполнение таблицы.

У меня заработало.

SergeyASV · 06.04.2016
SergeyASV, он про bash скрипт.

Это я понял, просто в голове отложилось, что пароль 1 раз вводили, а это было в первом варианте скрипта. Сейчас в каждом запросе, но не вижу в этом проблемы, его же не каждый день надо вводить :D

SergeyASV · 06.04.2016
Поиск по *temp* ничего не дал. Как вообще из отображения убрать температуру процессора?

А температура системы есть?

 

Bloody · 06.04.2016
папку с логами в lib

То, что таблицы были созданы - говорит о том, что файлы txt всё же были найдены. Последующие запуски заполнения БД так же не приведут к успеху, так как таблицы уже созданы.

Imperator · 06.04.2016
А температура системы есть?

Да.

SergeyASV · 06.04.2016
Да.

Тогда на проц можно забить. Системная получается вычитанием из процессорной ~13С, во всяком случае на DS115.

Кстати народ, выложите скрины температур своих систем.

http://s018.radikal.ru/i517/1604/d0/bebdb264ec8d.png

Volk65 · 06.04.2016

Не выводится температура системы. Выводится температура 2 HDD.

DS414 DSM 5.2-5644 Update 5

 

Всё остальное работает.

Bloody · 06.04.2016

Сделал три разных пакета для установки, в зависимости от мест под диски. Удалил температуру CPU до поиска универсального решения. Ссылки - в первом сообщении темы.

 

От прошлой сборки отличаются одним конфиг-файлом и скриптом сбора статистики.

SergeyASV · 06.04.2016

Bloody

 

Не будет универсального решения по температуре проца для разных НАС-ов, пути у разных моделей отличаются.

По SNMP параметров с каждой прошивкой тоже все меньше и меньше выводится.

Bloody · 06.04.2016
решения по температуре проца для разных НАС-ов

По двум моделям статистика есть :) А там, глядишь, еще наберется.

Imperator · 06.04.2016

Уровень заряда батареи опять из snmp предалагается брать (в 4 дисковой модели), а его там нет.

Bloody · 06.04.2016
Уровень заряда батареи опять из snmp предалагается брать (в 4 дисковой модели), а его там нет.

Спасибо, поправил

SergeyASV · 06.04.2016
По двум моделям статистика есть :) А там, глядишь, еще наберется.

 

Моей и твоей?, тогда по трем, на 212j нету датчиков температуры ни проца ни материнки.

Здесь народ поактивнее чем на хоботе :)

Bloody · 06.04.2016
на 212j нету датчиков температуры ни проца ни материнки.

Даже в DSM нигде упоминания про температуру?

SergeyASV · 06.04.2016
Даже в DSM нигде упоминания про температуру?

 

Нет даже пункта температура системы в панели управления. Из за чего я делаю вывод, что материночная берется из проца, но надо проверять еще. Статистики по температурам с разных нас у меня нет. Вот и хочу что-бы народ здесь выкладывал графики.

Madnicks · 06.04.2016

Ок, вот мои 5 копеек:

 

http://s16.radikal.ru/i191/1604/6a/7d02b5ead684.jpg

 

Установлена OS от DS3615xs 5.2-5644 Update 5

 

Крутится на Intel Core i7 3770.

 

Возможно, автору будет интересно:

 

CPU1 - Tcore, температура одного из ядер (их 4, хотелось бы видеть все, учитывая, что у обитателей этого форума много двухъядерных процов), а впрочем не столь важно.

SYS - это Tcase (замеряется датчиком, расположенным под крышкой в центре процессора. Проще говоря - это температура корпуса процессора, именно её мы видим в мониторинге BIOS материнки.

 

В месте, где рваный график - машинка выключалась мин на 15.

Bloody · 06.04.2016

У меня температуры ядер практически не отличаются, поэтому для мониторинга оставил только одну.

graphic_temp_001.png

 

Крутится на Intel Core i7 3770

Температуры ядер и системы откуда берутся?

Madnicks · 06.04.2016
температуры ядер практически не отличаются

Так я и думал, там разница наверняка будет в 2-3 градуса, не больше. Значит и бог с ним.

 

Температуры ядер и системы откуда берутся?

С датчиков проца, видимо, считываются системой. Ибо отображаемая температура соответствует действительности.

У них допустимый максимум Tcore 105°С, что соответствует Tcase 72.6°C. Это показатели, когда включается троттлинг.

Bloody · 06.04.2016
С датчиков проца, видимо, считываются системой.

Я про скрипт, собирающий данные :) Какие то изменения в него вносились?

Попробуйте вот эти файлы заменить, настроил на 2 ядра и 2 HDD. Если устанавливали систему мониторинга из первого, выложенного мной, архива, то должно показать температуру 0 и 1 ядер.

niks · 06.04.2016

Bloody а статистику по 2 сетевым интерфейсам или по Bond как вывести на графики? Скрипт изменил, в лог файлы данные пишутся, а вот дальше сложней

Madnicks · 06.04.2016
Я про скрипт, собирающий данные :) Какие то изменения в него вносились?

Ох, простите, старею видать.)) Не, ничего не менял. Устанавливал из первого выложенного архива. Щас заменим, отпишусь позже.

Madnicks · 06.04.2016
Попробуйте вот эти файлы заменить, настроил на 2 ядра и 2 HDD. Если устанавливали систему мониторинга из первого, выложенного мной, архива, то должно показать температуру 0 и 1 ядер.

 

Да, примерно как и предполагалось. Вот вчерашний тот же самый график:

 

http://s11.radikal.ru/i183/1604/5d/d7b2368f84b0.jpg

 

Ну и сегодняшний до кучи:

 

http://s018.radikal.ru/i513/1604/bf/36155f26005c.jpg

 

Bloody · 06.04.2016
по 2 сетевым интерфейсам или по Bond

Показывайте свой скрипт, поколдую.

niks · 06.04.2016
Показывайте свой скрипт, поколдую.

 

https://yadi.sk/i/2GWPu-Raqo3h5

 

И по MySQL так и не понял, если папка log находится в корне, как прописано в скрипте, база создается но не заполняется, а если в папке mon, то создание и заполнение в порядке но данные больше не обновляются.

 

Если папка с логами находится в папке lib то все заполняется.

прошу прощения немного перепутал mon с lib:unsure:

Volk65 · 06.04.2016

Вопрос разработчику:

А в каком формате пишется "Дата/время", как привести в нормальному виду? (Имеется ввиду MySQL)

Bloody · 06.04.2016
А в каком формате пишется "Дата/время"

Unix Time В скриптах удобнее оперировать именно этими величинами, да и проблем с часовыми поясами, переводом времени, и проч. меньше.

 

niks, теперь разглядел проблему. Вот правильный func_db файл. И готовый конфиг под 2 ядра, 2 диска, 2 сетевых.

SergeyASV · 07.04.2016

Bloody

А ты в здешнем варианте убирал правую колонку?

Она как раз нужна, чтобы в ручную не переводить время из mysql в удобоваримое.

http://s019.radikal.ru/i609/1604/e7/a437efb07dad.png

niks · 07.04.2016
Unix Time В скриптах удобнее оперировать именно этими величинами, да и проблем с часовыми поясами, переводом времени, и проч. меньше.

 

niks, теперь разглядел проблему. Вот правильный func_db файл. И готовый конфиг под 2 ядра, 2 диска, 2 сетевых.

Добрейшей души Человек :rolleyes: , Спасибо!

Bloody · 07.04.2016
SergeyASV, нет, колонка на месте, по умолчанию скрыл её отображение. Но кнопка справа сверху от графика на месте.
PnServer · 07.04.2016

SergeyASV подскажите пожалуйста, как скриптом получить температуры HDD ?

 

Например:

 

smartctl -d sat -A /dev/sg0 | grep -i Temperature_Celsius | tr -s ' ' | cut -d\ -f 10 --- тут я получу температуру только когда зайду под ROOT в SSH, что не удобно, так как хочу выводить данное через PHP таким кодом, но не получается.

 

echo "HDD 1: ".shell_exec('smartctl -d sat -A /dev/sg0 | grep -i Temperature_Celsius | tr -s ' ' | cut -d\ -f 10')."С.<br>";

Bloody · 07.04.2016

PnServer, я находил температуру еще там ->

cat /run/synostorage/disks/sda/temperature

SergeyASV · 07.04.2016

PnServer

 

А почитать тему так трудно?

http://www.synology.forum/index.php?sho...ost&p=61461

 

PnServer · 07.04.2016

Bloody

Огромное спасибо !

 

PnServer · 07.04.2016
PnServer

 

А почитать тему так трудно?

http://www.synology.forum/index.php?sho...ost&p=61461

 

Дело не в том трудно или нет, вас попросили помочь, а вы вместо помощи включили продвинутого пользователя.

 

cat /run/synostorage/disks/sda/temperature --- это код помог получить то, что мне нужно, спасибо Bloody

 

snmpwalk -Ov -v 2c -c public 127.0.0.1 1.3.6.1.4.1.6574.2.1.1.6.0 --- а вот этот на который вы меня отправили по ссылке у меня не работает, потому вам сказать спасибо НЕ ЗА ЧТО!

SergeyASV · 07.04.2016

PnServer

Перед тем как обиженного из себя строить можно хоть немного самому потрудиться и почитать. Все пережевано уже по несколько раз и не только в этой теме.

А задать вопрос и сидеть ждать пока за тебя другие гуглить будут самый простой вариант.

 

а вот этот на который вы меня отправили по ссылке у меня не работает

SNMP сначала включить надо в настройках.

Siroc-co · 07.04.2016
Siroc-co, JpGraph был выбран не случайно. Упомянутый Highcharts и некоторые прочие тоже рассматривались в качестве альтернативы. Проблема - количество точек и вытекающая отсюда производительность. При снятии логов раз в 5 минут, за неделю набегает более 2000 точек. За месяц - более 8000. Highcharts начинает загибаться уже от 500 точек

Да ладно? Прям загибается? А надо с умом делать, с выборкой по БД за период, и тогда будут запрашиваться 150-500 точек, не более, или как захотите, будет зависеть от масштабирования, и пофиг там ему, хоть два триллиона точек, выборка будет лишь определённого промежутка. И не будет никаких многокилобайтных данных.

 

да и работает он на стороне клиента.

А это плюс. Нефиг сервак напрягать лишний раз, пусть клиент напрягается. Да и опять же повторю, если по уму реализовать, то никому никаких напрягов не будет.

У них есть демки и подробные примеры.

Bloody · 07.04.2016
выборка будет лишь определённого промежутка.

Хорошо. Хочу я посмотреть данные за месяц, с максимальной достоверностью. 500 точек для этого явно маловато будет. Варианты сглаживания пробовали? Точек при этом меньше, соглашусь. Но достоверность информации страдает.

Впрочем, если возьметесь за реализацию - против не буду ;)

SergeyASV · 08.04.2016
А надо с умом делать, с выборкой по БД за период

Если посмотреть данные за год, то надо будет 2 мегабайта инфы прогнать только для одного параметра, а если несколько параметров отрисовывать...., а еще у меня минутные значения собираются там файл 10 мег/год и все эти 10 мегов придется скачивать на комп чтобы посмотреть график, а тут получается 10-20 килобайт картинка.

ent · 08.04.2016

Ремарочка по инсталляции.

На мой взгляд, слишком жирно наделять пользователя graph практически полными полномочиями на все базы mysql сервера.

GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER ON *.* TO 'graph'@'localhost' IDENTIFIED BY 'ВАШ_ПАРОЛЬ';

Достаточно ограничить полномочия базой graph:

GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER ON `graph`.* TO 'graph'@'localhost' IDENTIFIED BY 'ВАШ_ПАРОЛЬ';

 

Bloody · 08.04.2016
Ремарочка по инсталляции.

INDEX, ALTER тоже ни к чему. Да и DELETE, DROP больше задел на будущее. В ближайших релизах поправлю. Сейчас продумываю интерактивный установщик с возможностью выбора нужных модулей(напряжение, температуры, ...) и возможностью создать пользователя в БД с последующим формированием готового скрипта для планировщика.

Siroc-co · 08.04.2016
Хорошо. Хочу я посмотреть данные за месяц, с максимальной достоверностью. 500 точек для этого явно маловато будет. Варианты сглаживания пробовали? Точек при этом меньше, соглашусь. Но достоверность информации страдает.

Впрочем, если возьметесь за реализацию - против не буду ;)

Ни сколько не страдает. Если вы 500 точек выводите, это норм. Если вы ещё достовернее хотите, то сколько вам нужно?, 5000 точек? А как вы их отрисуете, а потом ещё и разглядите на мониторе с такой достоверностью? Или у Вас монитор 10 мегапикселей? Или вы хотите сказать, что тот JPEG, который отрисовывает jpgraph, имеет сверх детализацию? Даже если бы и имел, то эта картина уже не 20кб весила бы, а ресурсы на создание такого графика хавались бы приличные. Так что не надо тут про детализацию, это мимо.

 

Впрочем, если возьметесь за реализацию - против не буду ;)

Я брался уже, ещё несколько лет назад мутил, всё прекрасно работало, около 200тыс показаний температуры и на мобиле даже отображались шустро. Только я так и не допёр, как на одних координатах несколько линий графиков отрисовывать, получалась только одна. Сейчас и времени нет заняться этим.

 

Если посмотреть данные за год, то надо будет 2 мегабайта инфы прогнать только для одного параметра, а если несколько параметров отрисовывать...., а еще у меня минутные значения собираются там файл 10 мег/год и все эти 10 мегов придется скачивать на комп чтобы посмотреть график

Нет. Не придётся всю базу скачивать. Написал же, делается выборка из БД и усреднение.

SergeyASV · 08.04.2016
Написал же, делается выборка из БД и усреднение.

 

А если мне надо MAX-MIN значение зачем мне усреднять?

Siroc-co · 08.04.2016
А если мне надо MAX-MIN значение зачем мне усреднять?

Так масштабируйте график, "увиличте", так сказать, и получите свои мин-макс за конкретный промежуток времени, если всё надо, абсолютно всё, то полюбому будет мин-макс, но другие колебания усреднятся. Усреднение происходит только тогда, когда количество информации не может уместиться в пределах разрешения монитора\картинки.

Вы вообще думаете чуть хотяб как оно работает? Вас послушать, так jpgraph даёт вам не усреднённые данные, а в полном виде, и каким-то супер магическим образом всовывает эти многие тысячи точек в картинку 640х480. Прям фантастика. И весит 20кб. Ага.

satoorn · 08.04.2016

Не нашёл. Зачем создавать три папки в /web? Не лучше ли всё перенести в /web/mon?

Bloody · 08.04.2016
Зачем создавать три папки в /web?

В процессе разработке создавалось несколько папок "mon1", "mon2", ... с разными версиями скриптов/дизайна/проч., что позволяло пользоваться одними и теми же логами и модулем jpgraph. Разработка продолжается...

SergeyASV · 08.04.2016
Вас послушать, так jpgraph даёт вам не усреднённые данные, а в полном виде, и каким-то супер магическим образом всовывает эти многие тысячи точек в картинку 640х480. Прям фантастика. И весит 20кб. Ага.

Причем тут картинка на графике, меня интересуют max-min в числовом виде из усредненных значений их как искать?

SergeS · 08.04.2016
Да ладно? Прям загибается? А надо с умом делать, с выборкой по БД за период, и тогда будут запрашиваться 150-500 точек, не более, или как захотите, будет зависеть от масштабирования, и пофиг там ему, хоть два триллиона точек, выборка будет лишь определённого промежутка. И не будет никаких многокилобайтных данных.

 

 

А это плюс. Нефиг сервак напрягать лишний раз, пусть клиент напрягается. Да и опять же повторю, если по уму реализовать, то никому никаких напрягов не будет.

У них есть демки и подробные примеры.

 

Вставлю свои пять копеек, может и не совсем по делу...

 

Я как-то довольно давно игрался с прорисовкой графиков для веба, и jpgraph оказался существенно, в разы, медленнее, чем если немного подумать и нарисовать график самому. Да, может потеряешь немного времени на написание и отладку, но оно того стоит. Еще с тех пор у меня на сынологы болтается простенькая системка сбора данных через сеть с двух Ардуинок, каждая из которых обслуживает по восем/ датчиков. Я это все то подключаю, то отключаю, но сбор данных идет, если ардуинки подключены, графики, как оказалось тоже рисуются, можете поигратся тут: link. Здесь будут отрисовыватся графики начиная он -20 дней до текущего момента и заканчивая -10 днями до текущего момента.

 

Для информации:

1) инфа собирается каждые пять минут, , то есть 12 измерений по каждому параметру за час (288 точек за сутки).

 

2) график прорисовывается по всем точкам в базе за выбранный интервал времени (то есть в принципе для больших графиков еще можно оптимизировать и оптимизировать),

 

3) для выбора интервала времени можно использовать стандартные ключевуе слова day, hour, minute, week, month, year, можно во множественном числе. Еще можно использовать слово now.

примеры:

Graph from -2 months to - 1 month,

Graph from -1 Years to NOW.

 

4) Ну и птичка Show Date Table включает вывод "сырой" базы данных за заданный интервал. Кстати, в базе данных еще хранится кое какая статистика за подотчетные пять минут, на самом деле ардуинка делает измерения каждую секунду, но в базу данных складывает инфу только раз в пять минут, посылая по каждому параметру среднее, мин, мах и stddev за эти пять минут. Б базе данных эта инфа есть, но для прорисовки графика используется только среднее за это пять минут.

 

5) если кому-то надо код, с удовольствием поделюсь,

 

6) Сейчас ни одна из ардуинок не подключена, одну отключил давным-давно, вторую - где-то с недельку назад,

 

7)один из графиков рисуется черной прямой линией потому что соответствующего сенсора нет ни в однои из ардуинок, то есть фактически каждая ардуинка имеет семь сенсоров, но система заточена под восемь.

 

8) что бы оценить скорость создания графиков нужно знать машинку - хренологи на hp microserver n54l в стандартной конфигурации с двумя гигами ram и четырьмя хардами в shr.

niks · 09.04.2016
... Разработка продолжается...

И это радует, простая информативная рабочая схема которая не грузит систему.

Bloody · 09.04.2016
не грузит систему.

И плюс, и минус. Нагрузка минимальна за счет сбора данных раз в 5 минут. Время рисования графиков с увеличением объема данных еще слегка упадет. В качестве источника общих данных о работе системы - сойдет :)

Madnicks · 09.04.2016
Нагрузка минимальна за счет сбора данных раз в 5 минут.

А можно как-то сделать сбор с шагом в минуту? Что где подкрутить надо?))

Просто 5 мин - слишком уж... За 5 мин много чего произойти может, не дай бог конечно. И знать не будешь.

Ну скажем, пусть в наличии будут 2 варианта - 5 мин и 1 мин. Это возможно? У меня только в TXT, базу не устанавливал.

Bloody · 09.04.2016
А можно как-то сделать сбор с шагом в минуту? Что где подкрутить надо?))

Сбор логов производится с помощью планировщика задач(сами же настраивали :) ). Там и крутить. Но для всех параметров это будет излишним. Лучше тогда создать несколько задач с разным интервалом выполнения.

Madnicks · 09.04.2016
Сбор логов производится с помощью планировщика задач(сами же настраивали :) ). Там и крутить. Но для всех параметров это будет излишним. Лучше тогда создать несколько задач с разным интервалом выполнения.

В планировщике я пробовал менять расписание - это не помогает. Может он и собирает каждую минуту, но отображает по 5 мин. И в текстовом поле это видно, если его вывести.

Bloody · 09.04.2016
но отображает по 5 мин.

Сейчас не могу проверить, но попробуйте вот этот файл.

Madnicks · 09.04.2016
Сейчас не могу проверить, но попробуйте вот этот файл.

Да, спасибо, так работает.

Только теперь временную шкалу не разобрать:

 

http://s017.radikal.ru/i443/1604/a3/d5cfacb61b43.jpg

 

UPD: вобщем не, понаблюдал я - это всё-таки не вариант. График становится жирненьким, а если ещё по 2-3 датчикам температура примерно одинаковая, то всё сливается в одну жирную полосу.

SergeS · 09.04.2016
6) Сейчас ни одна из ардуинок не подключена, одну отключил давным-давно, вторую - где-то с недельку назад,

 

Подключил одну ардуинку взад, пусть пока тарахтит ;-). Все сенсоры лежат прямо рядом с ней, на полке...

SergeyASV · 09.04.2016
Подключил одну ардуинку взад, пусть пока тарахтит ;-). Все сенсоры лежат прямо рядом с ней, на полке...

 

Ошибку выдает:

 

Arduino Sensors READ page.

MySQL Error: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near

SergeS · 09.04.2016
Ошибку выдает:

 

Arduino Sensors READ page.

MySQL Error: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near

 

А что вы задаете в полях Graph from: и to:?

 

Я не сильно заморачивался с "умной" обработкой ошибок в этих полях, наверное если что то не похожее на то, что я там ожидаю, туда вобъете, то может и ругнутся. Давайте скриншот, я посмотрю... Вот только что еще раз проверил ту самую ссылку что я тут кинул, все работает, кусок скриншота: тут

SergeyASV · 09.04.2016
А что вы задаете в полях Graph from: и to:?

У меня даже поля не появляются, просто пустая страница с надписью

 

Arduino Sensors READ page.

MySQL Error: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near

SergeS · 09.04.2016
У меня даже поля не появляются, просто пустая страница с надписью

 

Arduino Sensors READ page.

MySQL Error: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near

 

Поля изначально берутся из url, на какой урл вы заходите?

Попробуйте просто http://sergeskor.no-ip.org/Arduino/, тогда должны подставится дефолтные с -2 DAYS до NOW.

 

Вообще странно, а какой браузер?

Bloody · 09.04.2016
Попробуйте просто http://sergeskor.no-ip.org/Arduino/, тогда должны подставится дефолтные с -2 DAYS до NOW.

У меня графики рисует.

Total Records Count: 2021496
:)
SergeS · 09.04.2016
2021496

:)

 

Ну да ;-). Там самые старые записи кажется за 2013. Должно вообще то быть. Еще больше, я где-то за год- полтора удалил.

SergeS · 10.04.2016
Сейчас не могу проверить, но попробуйте вот этот файл.

 

Еще похоже какая то лажа с часовыми поясами, я в НьюЙорке, у меня сейчас 9:40 вечера субботы, а графики уже показывают за 4:40 утра завтрашнего дня ;-). Время и часовой пояс на синосервере выставлено.

SergeS · 10.04.2016
Подключил одну ардуинку взад, пусть пока тарахтит ;-). Все сенсоры лежат прямо рядом с ней, на полке...

 

Ардуинка почему то иногда подвисает, потом сама отвисает ;-), раньше такого не было. это не проблема прорисовки, это проблема непопадания данных в базу.

SergeyASV · 10.04.2016
Поля изначально берутся из url, на какой урл вы заходите?

Попробуйте просто http://sergeskor.no-ip.org/Arduino/, тогда должны подставится дефолтные с -2 DAYS до NOW.

 

Вообще странно, а какой браузер?

 

Все равно не заходит, браузер лиса, еще пробовал на опере, но все под линухом.

Попробовал под виндой, тоже самое, может ip в черном списке?

SergeS · 10.04.2016
Все равно не заходит, браузер лиса, еще пробовал на опере, но все под линухом.

Попробовал под виндой, тоже самое, может ip в черном списке?

 

Не знаю, странно. Еще у кого-то так же не работает? Был бы айпи в черном списке - вообще бы не соединяло, до mysql и не доходило бы. Можете сами проверить, заходит ли в корень сайта, там правда ничего нет, но сообщение об этом вы должны увидеть ;-). Пришлите скриншот, наверное в личку, если у всех остальных работает... Если хотите, можем немного глубже потраблшутить, но тоже наверое тогда в личку...

SergeyASV · 10.04.2016
Не знаю, странно. Еще у кого-то так же не работает? Был бы айпи в черном списке - вообще бы не соединяло, до mysql и не доходило бы. Можете сами проверить, заходит ли в корень сайта, там правда ничего нет, но сообщение об этом вы должны увидеть ;-). Пришлите скриншот, наверное в личку, если у всех остальных работает... Если хотите, можем немного глубже потраблшутить, но тоже наверое тогда в личку...

 

http://s017.radikal.ru/i440/1604/38/76d2f381c236.png

 

Тоже хочу ардуино прикрутить, температуру и давление измерять.

Imperator · 10.04.2016

А с переходника USB-COM можно данные получить?

SergeS · 10.04.2016
Тоже хочу ардуино прикрутить, температуру и давление измерять.

 

Аааа, вот оно где собака порылась -)

Попробуйте вот этот линк, специально для вас сделал: тут

 

Проблема судя по всему в том, что на самом деле кроме графиков я на этой страничке еще веду лог посетителей, чисто для поигратся и поучится, что бы понять, что можно легко и просто вытянуть из IP, и вот именно этот loging почему то в вашем случае глючит в вставке в базу данных. Никакого отношения в Arduino и графикам это не имеет, я честно говоря и забыл, уже про этот логинг. Кстати, если кому интересно - сам этот лог можно посмотреть тут - там две большие таблицы, одна просто лог за последние сутки, вторая - счетчик по IP, сколько раз какой IP заходил. По линку который я вам выше дал - я просто этот логгинг убрал вообще.

 

Тоже хочу ардуино прикрутить, температуру и давление измерять.

 

Если хотите - весь код вам пришлю...

polanat · 10.04.2016
Не знаю, странно. Еще у кого-то так же не работает?

SergeS копайте у себя - у Вас или косячный код или отсутсвует проверка некорректности данных

SergeyASV · 10.04.2016
Попробуйте вот этот линк, специально для вас сделал: тут

Так рабоает.

Кстати, если кому интересно - сам этот лог можно посмотреть тут - там две большие таблицы, одна просто лог за последние сутки, вторая - счетчик по IP, сколько раз какой IP заходил

ошибка как рраньше.

Если хотите - весь код вам пришлю...

Если не жалко, то буду очень признателен.

 

SergeS · 10.04.2016
Так рабоает.

 

Ну и хорошо, значит точно тут проблема.

Попробуйте плиз еще раз зайти сюда, я пытаюсь понять в чем проблема...

 

 

ошибка как рраньше.

А, ну да, там же такой же логгинг стоит :-)

 

Если не жалко, то буду очень признателен.

 

Наверное в емейл лучше? Пришлите в личку ваш емейл.

SergeS · 10.04.2016
А с переходника USB-COM можно данные получить?

 

Речь про Ардуино? Я пытался (на синолоджи), у меня не получилось... Такое впечатление, что синолоджи сама рулит всеми видимыми в системе компортами - шлет туда какой-то мусор, открывает их, закрывает, по какой-то своей внутренней логике...

SergeS · 10.04.2016
SergeS копайте у себя - у Вас или косячный код или отсутсвует проверка некорректности данных

 

Спасибо, что б я без вас делал бы :-)

Так у вас лично работает или нет?

 

SergeyASV · 10.04.2016
Ну и хорошо, значит точно тут проблема.

Попробуйте плиз еще раз зайти сюда, я пытаюсь понять в чем проблема...

Попробовал.

 

SergeS · 10.04.2016
Попробовал.

 

ушел в личку, спасибо...

SergeS · 10.04.2016
Все равно не заходит, браузер лиса, еще пробовал на опере, но все под линухом.

Попробовал под виндой, тоже самое, может ip в черном списке?

 

Поправил, был баг с неотескейпченой sql-строкой, редко проявлялся, только в определенный георгафических регионах :-).

 

Извиняюсь, что влез со своими ардуино-графиками, заглушив основную тему, не думал, что такой трафик получится...

 

Может быть модератор перенесет все, что касается ардуино в эту тему тут ?

 

SergeS · 11.04.2016
snmpwalk -Ov -v 2c -c public 127.0.0.1 1.3.6.1.4.1.6574.2.1.1.6.0

snmpwalk -Ov -v 2c -c public 127.0.0.1 1.3.6.1.4.1.6574.4.3.1.1.0

snmpwalk -Ov -v 2c -c public 127.0.0.1 1.3.6.1.4.1.6574.2.1.1.6.1

snmpwalk -Ov -v 2c -c public 127.0.0.1 1.3.6.1.4.1.6574.2.1.1.6.2

snmpwalk -Ov -v 2c -c public 127.0.0.1 1.3.6.1.4.1.6574.2.1.1.6.3

 

Откуда вообще вот эти сумашедшие числа после public и локалхостного ip возникают, откуда вы их берете?

Я так понимаю, что через сеть я подобным образом могу собирать разную инфу с snmp-устройств, но вопрос - как определить эти числа?

SergeS · 11.04.2016
Unix Time В скриптах удобнее оперировать именно этими величинами, да и проблем с часовыми поясами, переводом времени, и проч. меньше.

 

Нет никаких проблем сделать тип этого поля timestamp и задать дефолтное значение в current_timestamp - убивается сразу два зайца, во первых сразу поле становится читаемо прямо в phpMyAdmin, и во вторых - не надо значение этого поля формировать и передавать в скрипте, которые делает insert, поле будет автоматически подставленно MySql. В скрипте, котрый делает select - да, обработка этого поля может оказатся немного более сложной, но так там и php, котрый с этим влегкую справляется...

 

p.s. Кстати, из sh-скрипта в mysql базу вставлять данные можно проще, в одну строку, а не в три, как то так (вставка в таблицу hdd2_temp, в поле value):

echo "INSERT INTO hdd2_temp (value) VALUES ($hdd2_temp);" | mysql -h $dbhost -D$dbase --user=$dbuser --password=$dbpassword

 

Проверено, работает... Хрен редьки конечно не слаще, но выглядит более компактно и легче читается.

 

У вашего варианта есть потенциальное преимущество в том, что можно один раз открывать и закрывать соединение с базой данных для записи всех параметров, пример ниже для двух параметров, но вы так не делаете:

mysql -h $dbhost -D $dbase -u $dbuser -p$dbpassword << EOF
INSERT INTO \`lan1_out\` (\`value\`) VALUES ($lan1_out);
INSERT INTO \`lan1_in\` (\`value\`) VALUES ($lan1_in);
EOF

 

p.p.s. Тип поля value может лучше выбирать не целочисленный, а с плавающей точкой? А то некоторые параметры (например напряжение батареи или напряжение сети), передается с одним знаком после запятой... А что бы большие но целочисленные значения (например lan_in или lan_out в вашем скрипте) влазили без округлений - использовать не float, а double?

Кстати, lan_in и lan_out - это что и в каких единицах?

SergeyASV · 11.04.2016
Откуда вообще вот эти сумашедшие числа после public и локалхостного ip возникают, откуда вы их берете?

Я так понимаю, что через сеть я подобным образом могу собирать разную инфу с snmp-устройств, но вопрос - как определить эти числа?

 

Это OID-ы они в документации есть, но их можно и просканировать.

 

Для Сино это https://www.google.ru/url?sa=t&rct=j&am...119028448,d.bGg

 

еще можно почитать

 

http://sysadminwiki.ru/wiki/%D0%9A%D0%B0%D..._MIB_%D0%B8_OID

SergeyASV · 11.04.2016
У вашего варианта есть потенциальное преимущество в том, что можно один раз открывать и закрывать соединение с базой данных для записи всех параметров

Один раз не получится, тогда при отсутствии одного параметра (устройство не ответило) не записываются все.

Кстати, lan_in и lan_out - это что и в каких единицах?

В мегабитах.

Bloody · 11.04.2016
поле становится читаемо прямо в phpMyAdmin

Читать таблицы? С целью?

 

А за идеи по sh-скрипту спасибо, будем оптимизировать.

 

В мегабитах.

...получаются после обработки и построения графика. В сыром виде - в битах. Потом к ним применяется коэффициент вида x * 8 / (1024*1024*300)

Bloody · 11.04.2016

del

SergeS · 11.04.2016
Читать таблицы? С целью?

 

Ну во первых - это просто красиво ;-)

Все таки читабельное лучше чем не читабельное, при прочих равных условиях.

Но прочих равных не получается - тип timestamp имеет умолчание равное текущему моменту, а тот тип который вы используете - не имеет. Это вынуждает вас заниматся вставкой этого поля непосредственно в скрипте, а при типе timestamp этого можно вообще не делать, вставлять только сам параметр.

SergeS · 11.04.2016
Один раз не получится, тогда при отсутствии одного параметра (устройство не ответило) не записываются все.

 

Зависит от того, обрабатываете ли вы такую ситуацию перед вставкой. Например можно вставлять null если устройство не ответило. Но осторожность нужна, согласен.

satoorn · 11.04.2016

Подскажите.

Поставил, прописал, логи пишутся, но картинки не рисуются. После нажатия выходит: something else other than 200 was returned.

SergeS · 11.04.2016
...получаются после обработки и построения графика. В сыром виде - в битах. Потом к ним применяется коэффициент вида x * 8 / (1024*1024*300)

 

Торможу с утра - Что в данном случае 300? Поправка на всякие контрольные суммы?

Bloody · 11.04.2016
После нажатия выходит: something else other than 200 was returned.

Уже второй случай с нерисующимися графиками... Если нажать на "Текстовые данные", что происходит? Браузер какой используете?

 

Что в данном случае 300?

300 секунд - это 5 минут, через которые мы снимаем данные.

satoorn · 11.04.2016
Уже второй случай с нерисующимися графиками... Если нажать на "Текстовые данные", что происходит?

 

Как раз при нажатии этой кнопки и появляется это сообщение, после уже при нажатии на любую кнопку выходит данное сообщение, кроме кнопок выбора графика.

PS. Удалил все папки и установил заново, всё заработало.

 

PS/ Кстати, не пишутся логи по сети. В обоих файлах "0". Хотя отрабатывает. DS415+

 

NAS> snmpwalk -Ov -v 2c -c public 127.0.0.1 1.3.6.1.2.1.31.1.1.1.6 | awk "{print $ 2}"

3861021

0

321279173

0

4814490

SergeS · 11.04.2016
300 секунд - это 5 минут, через которые мы снимаем данные.

 

А, понял - это аккумулирующее значение с предидущего считывания, так?

 

Тут потенциальная проблема, если юзер поменяет частоту запуска скрипта в планировщике (ну или к примеры руками скрипт однажды запустит) - весь расчет слетит. Надо наверное этот интервал гибко считать, брать из базы время предидущего и текущего отсчета, и считать разницу...

satoorn · 11.04.2016

Как взять третью строку когда парсю сеть?

NAS> snmpwalk -Ov -v 2c -c public 127.0.0.1 1.3.6.1.2.1.31.1.1.1.6 | awk "{print $ 2}"

3861021

0

321279173

0

4814490

SergeyASV · 11.04.2016
...получаются после обработки и построения графика.

Само собой после обработки.

В сыром виде - в битах. Потом к ним применяется коэффициент вида x * 8 / (1024*1024*300)

Ты мне то не рассказывай :D я помню как мы выясняли почему у тебя в попугаях рисовалось. ;)

Bloody · 11.04.2016
Как взять третью строку когда парсю сеть?

snmpwalk -Ov -v 2c -c public 127.0.0.1 1.3.6.1.2.1.31.1.1.1.6 | awk 'NR==3{print $2}'

Но правильнее, конечно, так:

добавляем .3 и получаем результат только с третей строчки

snmpwalk -Ov -v 2c -c public 127.0.0.1 1.3.6.1.2.1.31.1.1.1.6.3

Покажите вывод

snmpwalk -Ov -v 2c -c public 127.0.0.1 1.3.6.1.2.1.31.1.1.1.6

SergeyASV · 11.04.2016
А, понял - это аккумулирующее значение с предидущего считывания, так?

 

Тут потенциальная проблема, если юзер поменяет частоту запуска скрипта в планировщике (ну или к примеры руками скрипт однажды запустит) - весь расчет слетит. Надо наверное этот интервал гибко считать, брать из базы время предидущего и текущего отсчета, и считать разницу...

С мониторингом сети вообще проблема, если счетчитки 64 битные, то 5-и минутный интервал нормально считается, в вот если 32, то за 5 минут счетчики переполняются и значение получаются меньше предидущего.

niks · 11.04.2016
Как взять третью строку когда парсю сеть?

NAS> snmpwalk -Ov -v 2c -c public 127.0.0.1 1.3.6.1.2.1.31.1.1.1.6 | awk "{print $ 2}"

3861021

0

321279173

0

4814490

добавляем .3 и получаем результат только с третей строчки

snmpwalk -Ov -v 2c -c public 127.0.0.1 1.3.6.1.2.1.31.1.1.1.6.3

 

SergeS · 11.04.2016
С мониторингом сети вообще проблема, если счетчитки 64 битные, то 5-и минутный интервал нормально считается, в вот если 32, то за 5 минут счетчики переполняются и значение получаются меньше предидущего.

 

Ну вроде у автора 64 битные стояли, или нет? Я игрался вообще с плавающей точкой, с double, его переполнить нереально, но наверное мoжно потерять в точности, во всяком случае при типе float - точно округляется, я это наблюдал.

SergeS · 11.04.2016
А, понял - это аккумулирующее значение с предидущего считывания, так?

 

Тут потенциальная проблема, если юзер поменяет частоту запуска скрипта в планировщике (ну или к примеры руками скрипт однажды запустит) - весь расчет слетит. Надо наверное этот интервал гибко считать, брать из базы время предидущего и текущего отсчета, и считать разницу...

 

кстати, тут еще одна потенциальная проблема, если вдруг одновременно запущены более одной сыстем мониторинга, так они могут конфликтовать вот на таких аккумулирующих счетчиках...

Bloody · 11.04.2016
В обоих файлах "0".

Для lan_out, в Вашем случае, 1.3.6.1.2.1.31.1.1.1.10.3 должно подойти?

 

64 битные стояли, или нет?

У меня был конфликт какого-то пакета ipkg, датчики 64 битные, а работали как 32 - переполнялись моментально.

 

Типы тоже перебирал, остановился на наиболее(как мне показалось) типе BIGINT(20) для всех данных. В новом инсталляторе можно попробовать задавать свой тип столбца каждому типу данных.

SergeyASV · 11.04.2016
Ну вроде у автора 64 битные стояли, или нет? Я игрался вообще с плавающей точкой, с double, его переполнить нереально, но наверное мoжно потерять в точности, во всяком случае при типе float - точно округляется, я это наблюдал.

На сино 64 битные стоят, а вот на моем зухеле 32, а интервал запросов 5 минут и если ни чего не качать, то график нормальный, а вот если начать загрузку на скорости 70-90 мбит/сек, то счетчик переполняется за 10-15 минут.

Bloody · 11.04.2016

Немного переписал sh-скрипт для планировщика. Теперь логины-пароли берутся из файла web/mon/lib/conf.php. Вариант для двухдискового НАСа -> туц.

satoorn · 12.04.2016
snmpwalk -Ov -v 2c -c public 127.0.0.1 1.3.6.1.2.1.31.1.1.1.6 | awk 'NR==3{print $2}'

 

Покажите вывод

snmpwalk -Ov -v 2c -c public 127.0.0.1 1.3.6.1.2.1.31.1.1.1.6

 

...мне не совсем понятно, как тогда текущий вариант awk "{print $ 2}" работает, если на выводе несколько значений, а в лог попадает одно(причем, не первое, а второе) :)

 

# snmpwalk -Ov -v 2c -c public 127.0.0.1 1.3.6.1.2.1.31.1.1.1.6

Counter64: 13638884

Counter64: 0

Counter64: 53093113

Counter64: 0

 

# snmpwalk -Ov -v 2c -c public 127.0.0.1 1.3.6.1.2.1.31.1.1.1.1

STRING: lo

STRING: sit0

STRING: eth0

STRING: eth1

 

PS. Сеть заработала. Думаю роутер прикрутить. )

lan_in=$(snmpwalk -Ov -v 2c -c public 127.0.0.1 1.3.6.1.2.1.31.1.1.1.6.3 | awk "{print $ 2}")

lan_out=$(snmpwalk -Ov -v 2c -c public 127.0.0.1 1.3.6.1.2.1.31.1.1.1.10.3 | awk "{print $ 2}")

Идут данные и с упса, но целыми числами, а не с сотыми.

load=$(snmpwalk -Ov -v 2c -c public 192.168.25.18 1.3.6.1.4.1.318.1.1.1.4.2.3.0 | awk "{print $ 2}")

 

ps. Только сейчас заметил, внизу время правильное, на графике - нет.

Поправил graphic.php, заработало правильно.

 

date_default_timezone_set('Asia/Yekaterinburg');

Bloody · 12.04.2016
# snmpwalk -Ov -v 2c -c public 127.0.0.1 1.3.6.1.2.1.31.1.1.1.1

Нолик в конце забыли ;)

date_default_timezone_set('Asia/Yekaterinburg');

Если эту строчку закомментировать(поставив знак "#" в начале), то что со временем произойдет?

SergeyASV · 12.04.2016
Немного переписал sh-скрипт для планировщика. Теперь логины-пароли берутся из файла web/mon/lib/conf.php. Вариант для двухдискового НАСа -> туц.

 

А зачем ты паузу в секунду делаешь после каждой записи в лог?

 

А вот в самом начале лучше сделать паузу в 10 сек. что-бы загрузка процессора была более реальная.

И кстати не думаю, что хороший вариант обращаться к конфиг файлу каждый раз когда данные пишутся т.е. с интервалом в 5 минут.

Bloody · 12.04.2016
А зачем ты паузу в секунду делаешь после каждой записи в лог?

Были какие-то мысли про работу с диском... убрал.

 

обращаться к конфиг файлу ... с интервалом в 5 минут.

Так обращение на чтение, что в этом страшного? Либо логины-пароли будут храниться в двух местах одновременно, что "потенциально" способно внести путаницу. При этом, те же каждые 5 минут идет запись логов в кучку файлов...

satoorn · 12.04.2016
Нолик в конце забыли ;)

Да вроде не забыл, зачем он если не секрет? :)

Если эту строчку закомментировать(поставив знак "#" в начале), то что со временем произойдет?

 

На час отстаёт.

http://s019.radikal.ru/i606/1604/89/ca1e7b34744f.jpg

 

PS. )) Сделал так, думаю лучше будат.

date_default_timezone_set('Etc/GMT-6');

Volk65 · 12.04.2016

А может ввести какой-нить флаг, типа: "Запись в лог на диск (1/0)" ?

Найдутся такие, кому достаточно хранить данные только БД.

Bloody · 12.04.2016
Да вроде не забыл, зачем он если не секрет? :)

Без нуля получается OID совершенно другого устройства. Насчет часового пояса поставлю себе галочку.

 

"Запись в лог на диск (1/0)"

Тогда придется дополнительно организовать бэкап базы(если навернется, обидно будет). Когда нибудь... А так, в качестве дополнительной меры безопасности пусть будет.

niks · 12.04.2016
Да вроде не забыл, зачем он если не секрет? :)

snmpwalk -Ov -v 2c -c public 127.0.0.1 1.3.6.1.2.1.31.1.1.1.1 название интерфейсов

snmpwalk -Ov -v 2c -c public 127.0.0.1 1.3.6.1.2.1.31.1.1.1.10 данные по этим интерфейсам

snmpwalk -Ov -v 2c -c public 127.0.0.1 1.3.6.1.2.1.31.1.1.1.10.1 данные по первому интерфейсу

snmpwalk -Ov -v 2c -c public 127.0.0.1 1.3.6.1.2.1.31.1.1.1.10.2 данные по второму интерфейсу

в вашем случае интересно 1.3.6.1.2.1.31.1.1.1.10.3 eth0

и 1.3.6.1.2.1.31.1.1.1.10.4 eth1

satoorn · 12.04.2016
snmpwalk -Ov -v 2c -c public 127.0.0.1 1.3.6.1.2.1.31.1.1.1.1 название интерфейсов

snmpwalk -Ov -v 2c -c public 127.0.0.1 1.3.6.1.2.1.31.1.1.1.10 данные по этим интерфейсам

snmpwalk -Ov -v 2c -c public 127.0.0.1 1.3.6.1.2.1.31.1.1.1.10.1 данные по первому интерфейсу

snmpwalk -Ov -v 2c -c public 127.0.0.1 1.3.6.1.2.1.31.1.1.1.10.2 данные по второму интерфейсу

в вашем случае интересно 1.3.6.1.2.1.31.1.1.1.10.3 eth0

и 1.3.6.1.2.1.31.1.1.1.10.4 eth1

 

Так вроде так и было:

lan_in=$(snmpwalk -Ov -v 2c -c public 127.0.0.1 1.3.6.1.2.1.31.1.1.1.6.3 | awk "{print $ 2}") #eth0 вход

lan_out=$(snmpwalk -Ov -v 2c -c public 127.0.0.1 1.3.6.1.2.1.31.1.1.1.10.3 | awk "{print $ 2}") #eth0 выход

 

eth1 не используется.

PnServer · 13.04.2016

Здравствуйте, подскажите пожалуйста как получить скорость по лвс1 (входящая/исходящая) и вообще возможно ли это?

Bloody · 13.04.2016
получить скорость по лвс1 (входящая/исходящая)?

DS415+ и в логах нули? Тогда ответ прямо в предыдущем сообщении ;)

lan_in=$(snmpwalk -Ov -v 2c -c public 127.0.0.1 1.3.6.1.2.1.31.1.1.1.6.3 | awk "{print $ 2}")

lan_out=$(snmpwalk -Ov -v 2c -c public 127.0.0.1 1.3.6.1.2.1.31.1.1.1.10.3 | awk "{print $ 2}")

Или Вы о другом?

PnServer · 13.04.2016
DS415+ и в логах нули? Тогда ответ прямо в предыдущем сообщении ;)

 

Или Вы о другом?

 

Вот такие данные мне приходят:

snmpwalk -Ov -v 2c -c public 127.0.0.1 1.3.6.1.2.1.31.1.1.1.6.3 | awk "{print $ 2}" --- 82934863213

snmpwalk -Ov -v 2c -c public 127.0.0.1 1.3.6.1.2.1.31.1.1.1.10.3 | awk "{print $ 2}" --- 187037253731

 

Они явно не похожи на скорость --- загрузка: 516 KB/c и выгрузка: 4.6 MB/s

Bloody · 13.04.2016
Вот такие данные мне приходят:

Эти цифры - количество переданных по интерфейсу бит данных. После снятия двух показаний, берется их разница и вычисляется средняя скорость(в МБ/сек) за последние 5 минут.

 

А на графиках что?

PnServer · 13.04.2016
Эти цифры - количество переданных по интерфейсу бит данных. После снятия двух показаний, берется их разница и вычисляется средняя скорость(в МБ/сек) за последние 5 минут.

 

А на графиках что?

Это не то что нужно, я думал есть показатели в реальном времени скорости загрузки и выгрузки как на виджете рабочего стола (мониторинг ресурсов)

Bloody · 13.04.2016
показатели в реальном времени скорости загрузки и выгрузки как на виджете рабочего стола (мониторинг ресурсов)

Пишете скрипт, опрашивающий эти датчики каждую секунду, проводите нехитрые математические операции, и выводите данные на график. Думаю, аналогичный виджет в DSM так и работает. Готовым решением не располагаю.

PnServer · 13.04.2016
Пишете скрипт, опрашивающий эти датчики каждую секунду, проводите нехитрые математические операции, и выводите данные на график. Думаю, аналогичный виджет в DSM так и работает. Готовым решением не располагаю.

Большое спасибо последовав вашему совету написал скриптик, всё отлично работает

SergeS · 14.04.2016
А, понял - это аккумулирующее значение с предидущего считывания, так?

 

Тут потенциальная проблема, если юзер поменяет частоту запуска скрипта в планировщике (ну или к примеры руками скрипт однажды запустит) - весь расчет слетит. Надо наверное этот интервал гибко считать, брать из базы время предидущего и текущего отсчета, и считать разницу...

 

Тут меня похоже проглючило, я почему то решил, что после каждого считывания этот счетчик сбрасывается, а это похоже не так, сбрасывается он похоже только когда переполняется... Я правильно понимаю?

SergeyASV · 14.04.2016
Cбрасывается он похоже только когда переполняется...

Именно так, но в Сино счетчики 64 бита и переполнить их до сброса надо очень постараться.

 

niks · 15.04.2016

Bloody подскажите при создании и заполнении базы SQL ошибок нет, но в последующем новые записи не добавляются, в какую сторону копать?

Bloody · 15.04.2016
в последующем новые записи не добавляются

Проверять скрипт в планировщике задач. Возможно, при редактировании допустили ошибку. Новый скрипт для планировщика, что недавно выкладывал, если временно поставить вместо текущего?

niks · 15.04.2016
Проверять скрипт в планировщике задач. Возможно, при редактировании допустили ошибку. Новый скрипт для планировщика, что недавно выкладывал, если временно поставить вместо текущего?

Подправил под себя "новый скрипт" и все заработало. Спасибо.

satoorn · 19.04.2016

А CACTI кто ни будь пробовал. Установить установил, дальше затык.

http://s020.radikal.ru/i707/1604/83/70ef12efce96.jpg

 

PS. По кактусу я думаю отдельная тема.

Не могу понять, почему загрузка процессора не работает.

NAS> snmpwalk -v 2c -c public 127.0.0.1 1.3.6.1.4.1.2021.11.9.0

UCD-SNMP-MIB::ssCpuUser.0 = INTEGER: 0

NAS> snmpwalk -v 2c -c public 127.0.0.1 1.3.6.1.4.1.2021.11.10.0

UCD-SNMP-MIB::ssCpuSystem.0 = INTEGER: 0

 

Bloody · 19.04.2016
NAS> snmpwalk -v 2c -c public 127.0.0.1 1.3.6.1.4.1.2021.11.9.0

UCD-SNMP-MIB::ssCpuUser.0 = INTEGER: 0

NAS> snmpwalk -v 2c -c public 127.0.0.1 1.3.6.1.4.1.2021.11.10.0

UCD-SNMP-MIB::ssCpuSystem.0 = INTEGER: 0

NAS в это время чем то нагружен? Вот моя статистика по 1.3.6.1.4.1.2021.11.10.0 за последний час:

19/04/16 19:35 - 0

19/04/16 19:40 - 0

19/04/16 19:45 - 0

19/04/16 19:50 - 0

19/04/16 19:55 - 0

19/04/16 20:00 - 1

19/04/16 20:05 - 1

19/04/16 20:10 - 0

19/04/16 20:15 - 0

19/04/16 20:20 - 0

19/04/16 20:25 - 0

19/04/16 20:30 - 0

19/04/16 20:35 - 0

satoorn · 19.04.2016

Поставил торрент, всё стало показывать.

Ещё вопрос. Прописал температуру батарей упса. В файл пишется правильно (37), а в графике и в текстовых данных другие показания (180).

Bloody · 19.04.2016
Прописал температуру батарей упса. В файл пишется правильно (37), а в графике и в текстовых данных другие показания (180).

Чуть больше подробностей. Куда прописали, и что? В моей системе есть только один ограничитель на "180" - это когда напряжение в сети меньше 150.

satoorn · 19.04.2016

Заменил в настройках 'ZyWall CPU Load'. Позже разберусь с алгоритмом conf_indx.php.

Bloody · 20.04.2016
'ZyWall CPU Load'.

Эти параметры заточены под конкретное устройство, с соответствующей обработкой

 

Позже разберусь с алгоритмом conf_indx.php.

Эту часть сейчас серьезно переделываю, в угоду удобства первоначальной конфигурации устройства. Возможно, имеет смысл неделю-другую подождать...

SergeyASV · 20.04.2016
Эту часть сейчас серьезно переделываю, в угоду удобства первоначальной конфигурации устройства. Возможно, имеет смысл неделю-другую подождать...

Че задумал?

Bloody · 20.04.2016
Че задумал?

Настройки через XML прикручиваю. Если получится, то во время установки можно будет добавить своих графиков по желанию.

SergeyASV · 20.04.2016

Круто.

DEV · 20.04.2016

Здравствуйте всем,

 

Автору большой респект за прогу и поддержку!

 

Интересует по большому счёту в основном снятие и вывод температуры проца, так как остальное можно в приципе посмотреть и штатными средствами сино dsm

немного предистории, на HP Gen8 заменили проц Celeron G1610T на E3-12хх v2 поэтому остро встал вопрос как мониторить температуру так как охлаждение оставили прежнее то есть пасивное,

а средствами iLO не получается, есть ограничение до 40°C.

Поэтому печально что пока:

Сбор и отображение температуры CPU временно удалил до нахождения универсального решения.

 

я взал сборку из архива плюс конфиг:

Я про скрипт, собирающий данные :) Какие то изменения в него вносились?

Попробуйте вот эти файлы заменить, настроил на 2 ядра и 2 HDD. Если устанавливали систему мониторинга из первого, выложенного мной, архива, то должно показать температуру 0 и 1 ядер.

добавил ещё на 2 ядра и в итоге получилось как то так:

sm3.png

 

в принципе мне все ядра не так и важны, главное чтобы показывало общую темрературу проца, тем более как уже здесь отмечали что разброс между ядрами не существенный

так что можно и оставить только одну запись cpu0_temp=$ или снимать к примеру с помощью такого вот скрипта:

источник

#!/bin/sh

cores=`cat /proc/cpuinfo | grep -i processor | wc -l`
counter=0

while [ "$counter" -lt "$cores" ]
do
        temperature=$((`cat /sys/class/hwmon/hwmon$counter/device/temp1_input` / 1000))
        total=$(( $total + $temperature ))
        echo `cat /sys/class/hwmon/hwmon$counter/device/temp1_label`: $temperature
        counter=$(( $counter + 1 ))
done
echo Average: $(( $total / $cores ))

 

поэтому у меня просьба, помогите подправить этот скрипт чтобы тем самым он снимал данные и давал в монитор только значение Average и как в таком случае будет выглядеть в итоге эта запись в скрипте монитора:

 

cpu0123_temp=$(cat /sys/devices/platform/coretemp.0/temp2_input)

 

путь я подправил а вот куда воткнуть в нём $counter если дерево у меня допустим такое:

server3150> cd /sys/class/hwmon/hwmon0/device
server3150> ls
driver            temp2_crit_alarm  temp3_label       temp5_crit
hwmon             temp2_input       temp3_max         temp5_crit_alarm
modalias          temp2_label       temp4_crit        temp5_input
name              temp2_max         temp4_crit_alarm  temp5_label
power             temp3_crit        temp4_input       temp5_max
subsystem         temp3_crit_alarm  temp4_label       uevent
temp2_crit

Bloody · 21.04.2016
cd /sys/class/hwmon/

ls

А там что лежит?

На вашей системе этот универсальный скрипт, я так понимаю, не завелся - temp1_input отсутствует. И что внутри temp2_input...temp5_input лежит? Подозреваю, что температура каждого из 4 ядер.

 

#!/bin/sh

cores=`cat /proc/cpuinfo | grep -i processor | wc -l`
counter=0
num=2

while [ "$counter" -lt "$cores" ]
do
        temperature=$((`cat /sys/class/hwmon/hwmon0/device/temp${num}_input` / 1000))
        total=$(( $total + $temperature ))
        echo `cat /sys/class/hwmon/hwmon0/device/temp${num}_label`: $temperature
        counter=$(( $counter + 1 ))
        num=$(( $num + 1 ))
done
echo Average: $(( $total / $cores ))

 

Попробуйте вот этот скрипт выполнить, что покажет? Если я не напортачил в синтаксисе :)

DEV · 21.04.2016
И что внутри temp2_input...temp5_input лежит? Подозреваю, что температура каждого из 4 ядер.

да, совершенно верно там у нас данные каждого из 4 ядер.

hwmon1.png

 

Попробуйте вот этот скрипт выполнить, что покажет?

Спасибо что посмотрели, вот что выдал:

server3150> ./CPUTemp.sh
Core 0: 39
Core 1: 39
Core 3: 41
cat: can't open '/sys/class/hwmon/hwmon0/device/temp8_input': No such file or directory
./CPUTemp.sh: line 14: syntax error:  / 1000

 

а если так:

#!/bin/sh

cores=`cat /proc/cpuinfo | grep -i processor | wc -l`
counter=0

while [ "$counter" -lt "$cores" ]
do
        temperature=$((`cat /sys/class/hwmon/hwmon0/device/temp2_input` / 1000))
        total=$(( $total + $temperature ))
        echo `cat /sys/class/hwmon/hwmon0/device/temp2_label`: $temperature
        counter=$(( $counter + 1 ))
done
echo Average: $(( $total / $cores ))

 

то показывает:

server3150> ./CPUTemp.sh
Core 0: 38
Core 0: 38
Core 0: 38
Core 0: 38
Average: 38

 

здесь вместо while [ "$counter" -lt "$cores" ] на while [ "$num" -lt "$cores" ] то получаю:

server3150> ./CPUTemp.sh
Core 0: 39
Core 1: 39
Core 3: 41
Average: 29

Bloody · 21.04.2016
да, совершенно верно там у нас данные каждого из 4 ядер.

А на 2 каталога вверх?

 

Поправил скрипт в прошлом сообщении, попробуйте еще раз.

DEV · 21.04.2016
Поправил скрипт в прошлом сообщении, попробуйте еще раз.

 

да!!! походу получилось

server3150> ./CPUTemp.sh
Core 0: 39
Core 1: 39
Core 2: 41
Core 3: 41
Average: 40

 

А на 2 каталога вверх?

/hwmon0

Bloody · 21.04.2016
да!!! походу получилось

Возьму на вооружение. Понять бы, на каких устройствах температуры в /sys/class/hwmon/hwmonx/device, а на каких в /sys/devices/platform/coretemp.x/.

Bloody · 21.04.2016
/hwmon0

/sys/class/hwmon/

DEV · 21.04.2016
Возьму на вооружение.

тогда можно скрипт CPUTemp.sh прикрутить к монитору или?

cpu_temp=$(./CPUTemp.sh)

естественно чтобы выдавал только значение "Average"

 

и ещё тогда до кучи, как вывести сеть

SNMP V2c
Walk 1.3.6.1.2.1.31.1.1.1.1
1.3.6.1.2.1.31.1.1.1.1.1 = "lo" [ASN_OCTET_STR]
1.3.6.1.2.1.31.1.1.1.1.2 = "eth0" [ASN_OCTET_STR]
1.3.6.1.2.1.31.1.1.1.1.3 = "eth1" [ASN_OCTET_STR]
1.3.6.1.2.1.31.1.1.1.1.4 = "sit0" [ASN_OCTET_STR]
1.3.6.1.2.1.31.1.1.1.1.6 = "bond0" [ASN_OCTET_STR]
1.3.6.1.2.1.31.1.1.1.1.7 = "docker0" [ASN_OCTET_STR]
1.3.6.1.2.1.31.1.1.1.1.9 = "dockerb46e6d8" [ASN_OCTET_STR]
1.3.6.1.2.1.31.1.1.1.1.10 = "tun0" [ASN_OCTET_STR]

 

нужно "eth0", "eth1", "bond0", "docker0" и "dockerb46e6d8" если не затруднит где следует подправить?

 

 

ах да, вот:

server3150> cd /sys/class/hwmon
server3150> ls
hwmon0

satoorn · 21.04.2016
Возьму на вооружение. Понять бы, на каких устройствах температуры в /sys/class/hwmon/hwmonx/device, а на каких в /sys/devices/platform/coretemp.x/.

 

#!/bin/sh

 

cores=`cat /proc/cpuinfo | grep -i processor | wc -l`

counter=0

num=2

 

while [ "$counter" -lt "$cores" ]

do

temperature=$((`cat /sys/class/hwmon/hwmon0/device/temp${num}_input` / 1000))

total=$(( $total + $temperature ))

echo `cat /sys/class/hwmon/hwmon0/device/temp${num}_label`: $temperature

counter=$(( $counter + 1 ))

num=$(( $num + 1 ))

done

echo Average: $(( $total / $cores ))

 

 

# ./test

Core 0: 33

Core 1: 33

Core 2: 34

Core 3: 33

Average: 33

 

DS415+

 

 

Bloody · 21.04.2016

cores=`cat /proc/cpuinfo | grep -i processor | wc -l`
counter=0
num=2

while [ "$counter" -lt "$cores" ]
do
                temperature=$((`cat /sys/class/hwmon/hwmon0/device/temp${num}_input` / 1000))
                total=$(( $total + $temperature ))
        counter=$(( $counter + 1 ))
        num=$(( $num + 1 ))
done

temp_average_core=$(( $total / $cores ))

Что то такое можно прикрутить.

DEV · 21.04.2016
cores=`cat /proc/cpuinfo | grep -i processor | wc -l`
counter=0
num=2

while [ "$counter" -lt "$cores" ]
do
        total = $(( $total + $((`cat /sys/class/hwmon/hwmon0/device/temp${num}_input` / 1000))  ))
        counter=$(( $counter + 1 ))
        num=$(( $num + 1 ))
done

temp_average_core = $(( $total / $cores ))

Что то такое можно прикрутить.

 

server3150> ./CPUTemp.sh
./CPUTemp.sh: line 12: total: not found
./CPUTemp.sh: line 12: total: not found
./CPUTemp.sh: line 12: total: not found
./CPUTemp.sh: line 12: total: not found
./CPUTemp.sh: line 14: syntax error:   / 4

 

Bloody · 21.04.2016

Поправил. Нет доступа к консоли.

DEV · 21.04.2016
Поправил. Нет доступа к консоли.

 

теперь ничего не кажет

 

Bloody · 21.04.2016
теперь ничего не кажет

Значит в переменной $temp_average_core должно находиться среднее значение температуры ядер ЦПУ, и можно работать с ним дальше.

DEV · 21.04.2016
Значит в переменной $temp_average_core должно находиться среднее значение температуры ядер ЦПУ, и можно работать с ним дальше.

 

на монитор выводит 0

cpu0_temp=$(./CPUTemp.sh)

21/04/16 17:55 - 40
21/04/16 18:00 - 0

 

что бы это значило и куда/где смотреть

 

Bloody · 21.04.2016
на монитор выводит 0

Если ссылаться на скрипт, то в скрипте нужно echo поставить. Или в планировщике сделать так:

cores=`cat /proc/cpuinfo | grep -i processor | wc -l`
counter=0
num=2
while [ "$counter" -lt "$cores" ]
do
        temperature=$((`cat /sys/class/hwmon/hwmon0/device/temp${num}_input` / 1000))
        total=$(( $total + $temperature ))
        counter=$(( $counter + 1 ))
        num=$(( $num + 1 ))
done
cpu0_temp=$(( $total / $cores ))

вместо cpu0_temp=$(...

DEV · 21.04.2016
вместо cpu0_temp=$(...

 

ok, кинул в планировщик

теперь так:

21/04/16 18:45 - 0
21/04/16 18:50 - 0
21/04/16 18:55 - 
21/04/16 19:00 - 
21/04/16 19:05 -

Bloody · 21.04.2016
теперь так:

Пришлите свой скрипт для планировщика.

DEV · 21.04.2016
Пришлите свой скрипт для планировщика.

 

пожалуйста вот: http://gofile.me

 

кстати если не трудно посмотрите и сеть пожалуйста:

server3150> snmpwalk -v 2c -c public 127.0.0.1 1.3.6.1.2.1.31.1.1.1.6
IF-MIB::ifHCInOctets.1 = Counter64: 19262936
IF-MIB::ifHCInOctets.2 = Counter64: 4126096432
IF-MIB::ifHCInOctets.3 = Counter64: 31224755
IF-MIB::ifHCInOctets.4 = Counter64: 0
IF-MIB::ifHCInOctets.6 = Counter64: 4157321187
IF-MIB::ifHCInOctets.7 = Counter64: 3219263801
IF-MIB::ifHCInOctets.9 = Counter64: 468
IF-MIB::ifHCInOctets.11 = Counter64: 3233301595
IF-MIB::ifHCInOctets.12 = Counter64: 0
server3150> snmpwalk -v 2c -c public 127.0.0.1 1.3.6.1.2.1.31.1.1.1.1
IF-MIB::ifName.1 = STRING: lo
IF-MIB::ifName.2 = STRING: eth0
IF-MIB::ifName.3 = STRING: eth1
IF-MIB::ifName.4 = STRING: sit0
IF-MIB::ifName.6 = STRING: bond0
IF-MIB::ifName.7 = STRING: docker0
IF-MIB::ifName.9 = STRING: dockeraf9c73d
IF-MIB::ifName.11 = STRING: docker2068c81
IF-MIB::ifName.12 = STRING: tun0

 

нужно eth0, eth1, bond0, docker0, dockeraf9c73d и docker2068c81

 

заранее благодарен!

Bloody · 21.04.2016
DEV, вот этот скрипт проверьте, что на вашей системе покажет.
DEV · 21.04.2016
DEV, вот этот скрипт проверьте, что на вашей системе покажет.

 

Даааа!

server3150> ./CPUTemp.sh
41

 

в мониторе пошло

21/04/16 22:35 - 0
21/04/16 22:40 - 0
21/04/16 22:45 - 42

 

премного благодарен!

 

Bloody · 21.04.2016

Просьба ко всем участникам "тестирования" ;) посмотреть, что находится на их устройстве в каталоге по адресу:

/sys/class/hwmon/hwmon0/device

. Версию устройства можно тоже указать. Спасибо.

niks · 22.04.2016
Просьба ко всем участникам "тестирования" ;) посмотреть, что находится на их устройстве в каталоге по адресу:
/sys/class/hwmon/hwmon0/device

. Версию устройства можно тоже указать. Спасибо.

driver

hwmon

power

subsystem

modalias

name

temp2_crit

temp2_crit_alarm

temp2_input

temp2_label

temp2_max

temp3_crit

temp3_crit_alarm

temp3_input

temp3_label

temp3_max

temp4_crit

temp4_crit_alarm

temp4_input

temp4_label

temp4_max

temp5_crit

temp5_crit_alarm

temp5_input

temp5_label

temp5_max

uevent

DS415+

Imperator · 22.04.2016
Просьба ко всем участникам "тестирования" ;) посмотреть, что находится на их устройстве в каталоге по адресу:
/sys/class/hwmon/hwmon0/device

. Версию устройства можно тоже указать. Спасибо.

Вообще папки /sys/class/hwmon нет. 413j.

DEV · 22.04.2016
Вообще папки /sys/class/hwmon нет. 413j.

 

без разницы, просто покажите путь по которому у вас находятся файлы температуры tempх_input

 

предположим у вас наверное

/sys/devices/platform/coretemp.x/.

Bloody · 22.04.2016
/sys/devices/platform/coretemp.x/.

На моем DS214play как раз такой путь, но между ним и "/sys/class/hwmon/hwmon0/device/...", похоже, есть симлинк, что может позволить использовать hwmon в качестве универсального решения для отображения температуры cpu.

 

В 413j, предположу, просто нет датчика температуры цпу.

Imperator · 22.04.2016
без разницы, просто покажите путь по которому у вас находятся файлы температуры tempх_input

Ничего похожего не нашёл. Да и не особо и надо - температуры системы достаточно.

as68 · 25.04.2016
Просьба ко всем участникам "тестирования" ;) посмотреть, что находится на их устройстве в каталоге по адресу:
/sys/class/hwmon/hwmon0/device

. Версию устройства можно тоже указать. Спасибо.

Здравствуйте. Внесу свой небольшой вклад.

 

/sys/class/hwmon/hwmon0/device

/..

~driver

/hwmon

/power

~subsystem

modalias

name

temp2_crit

temp2_crit_alarm

temp2_input

temp2_label

temp3_crit

temp3_crit_alarm

temp3_input

temp3_label

uevent

-----------------------------------

 

STRING: "DS713+"

STRING: "D5LPN01686"

STRING: "DSM 6.0-7321"

 

И у меня сразу вопрос, не подскажите, как добавить в индексирование ещё одну папку с .txt логами, например log1, которая будет находиться в той-же директории где и log ?

Спасибо.

Bloody · 25.04.2016
Здравствуйте. Внесу свой небольшой вклад.

Спасибо.

 

добавить в индексирование ещё одну папку с .txt логами

С какой целью?

as68 · 25.04.2016
С какой целью?

У меня в директорию web подключена сетевая папка log1. На неё пишется лог с роутера (пока - температура процессора) в .тхт файл, физически это флешка, вставленная в USB порт роутера. Как добавить её в индексацию?

Bloody · 25.04.2016
as68, как таковой, индексации нет. Считывается кусок файла с конца, определенной длины, и обрабатывается. Можно реализовать поиск нужного файла внутри папки "log" с учетом подпапок, но придется следить за уникальностью имени файлов.
as68 · 25.04.2016
as68, как таковой, индексации нет. Считывается кусок файла с конца, определенной длины, и обрабатывается. Можно реализовать поиск нужного файла внутри папки "log" с учетом подпапок, но придется следить за уникальностью имени файлов.

 

Меня конкретно интересует вот это место в graphic.php:

 

elseif ($txtEn == 1) ${'data'.$x} = getdatatxt(dirname(__file__).DS.'..'.DS.'log'.DS.${'mName'.$x}.'.txt', ${'corrcoeff'.$x});

 

Если меняю 'log' на 'log1' то график строится, всё нормально. Но я не знаю как дописать код чтобы данные читались из log и log1 одновременно, хотя бы в

режиме тхт пока. Надеюсь понятно объяснил проблему. :)

 

Bloody · 25.04.2016
Надеюсь понятно объяснил проблему. :)

Да, понято всё верно.

В graphic.php меняем

elseif ($txtEn == 1)    ${'data'.$x} = getdatatxt(dirname(__file__).DS.'..'.DS.'log'.DS.${'mName'.$x}.'.txt', ${'corrcoeff'.$x});

на

elseif ($txtEn == 1)    ${'data'.$x} = getdatatxt(${'mName'.$x}, ${'corrcoeff'.$x});

и в func.php заменить

$lines = file($file);

на

код поиска файла по имени, начиная от папки "log" и внутрь на всю глубину

...вечерком накидаю.

as68 · 25.04.2016
Да, понято всё верно.

В graphic.php меняем

elseif ($txtEn == 1)    ${'data'.$x} = getdatatxt(dirname(__file__).DS.'..'.DS.'log'.DS.${'mName'.$x}.'.txt', ${'corrcoeff'.$x});

на

elseif ($txtEn == 1)    ${'data'.$x} = getdatatxt(${'mName'.$x}, ${'corrcoeff'.$x});

и в func.php заменить

$lines = file($file);

на

код поиска файла по имени, начиная от папки "log" и внутрь на всю глубину

...вечерком накидаю.

Спасибо за ответ.

При замене кода в graphic.php перестал вообще рисовать даже из папки log. На счёт замены в func.php вообще извините ничего непонял. У меня папки log и log1 находятся на одном уровне, т.е в каталоге web. Зачем мне поиск по имени от папки log во внутрь. Извините за непонятливость если что.

 

В папке log у меня логи с Synology всё рисовалось превосходно. В папке log1 у меня логи с роутера (там запущен скрипт в кроне, пишет в log1 в тхт файл в том же формате ). Повторю, папки находятся на одном уровне. Мне нужно читать одновременно из двух папок. :)

Bloody · 25.04.2016

Ничего менять пока не надо. Это так, размышления вслух... Сделаем тогда по другому. Сейчас уже готовится к релизу новая версия установщика/конфигуратора, добавлю тогда туда возможность прописать несколько путей для поиска логов.

as68 · 25.04.2016
Ничего менять пока не надо. Это так, размышления вслух... Сделаем тогда по другому. Сейчас уже готовится к релизу новая версия установщика/конфигуратора, добавлю тогда туда возможность прописать несколько путей для поиска логов.

Отлично, понял. Будем ждать. И большое спасибо за программу! Сейчас рисует семь графиков с Synology на ура, единственное что пришлось много править под свои специфические запросы. Температура процессора по-ядерно. Температура системы забавно повторяет температуру CORE_0 один в один, за некоторым минусом (где-то -9 С).

Логи беру:

CPU

cpu0_temp=$(cat /sys/devices/platform/coretemp.0/temp2_input)

cpu1_temp=$(cat /sys/devices/platform/coretemp.0/temp3_input)

SYS

sys_temp=$(snmpwalk -Ov -v 2c -c public 127.0.0.1 1.3.6.1.4.1.6574.1.2.0 | awk "{print $ 2}")

 

Похоже SYS temp. по SNMP в моей модели отдаётся с CORE_0 с коррекцией. Я думаю нет там отдельного датчика.

SergeyASV · 25.04.2016
Температура системы забавно повторяет температуру CORE_0 один в один, за некоторым минусом (где-то -9 С).

А у меня -11С.

Похоже SYS temp. по SNMP в моей модели отдаётся с CORE_0 с коррекцией. Я думаю нет там отдельного датчика.

тоже к такому выводу прихожу.

SergeS · 26.04.2016

Я тут на выходные немного поигрался и сделал универсальный (типа :-) ) скрипт собирать данные в базу данных. Универсальность заключается в том, что при изменении состава параментов не надо редактировать сам скрипт, информация (имя таблицы куда писать этот параметр и командная строка для получения самого этого параметра) о параметрах берется из отдельной таблицы базы данных, которую и надо редактировать. Получилось немного коряво (я не баш-волшебник, я только учусь), но в принципе работает... По моему - это более правильный подход, в этой же отдельной таблице описаний параметров можно (и наверное нужно) держать дополнительную инфу, типа единиц измерения или подробного комментария, что это за параметр, ну и там же можно всякие красивости держать, например цвет графика, по вкусу... И отдельную софтину для конфигурирования сенсоров/параметров тоже проще сделать.

 

Если кому-то интересно, кроме меня :-), могу скинуть сюда этот скрипт, как будет пару минут, может заодно кто-то и мои корявости исправит (список корявостей тоже приложу)...

Bloody · 27.04.2016

Забавно, но что то такое же я как раз и сделал(~90%). Только вместо таблицы со всеми исходными данными взял xml файл. Собственно, осталось только этот исходный файл со всеми данными и заполнить. БД всё же сначала надо настроить, потом создать таблицу с данными... Но посмотреть не прочь ;)

SergeS · 27.04.2016
Забавно, но что то такое же я как раз и сделал(~90%). Только вместо таблицы со всеми исходными данными взял xml файл. Собственно, осталось только этот исходный файл со всеми данными и заполнить. БД всё же сначала надо настроить, потом создать таблицу с данными... Но посмотреть не прочь ;)

 

Ок, смотри...

Структура таблицы... Лень расписывать, вот тебе линк: phpMyAdmin, сделал специально юзера с правами на только Select, смотри структуру сам :-), username: SynoForumTest, пароль - такой же.

Видны две базы - Monitoring (это именно она) и Arduino (сбор данных с сенсоров на Ардуино, я несколько дней назад прямо в этом треде об этом писал).

 

Скрипт ниже, если кратко, то логика работы такая:

1) сначала из таблицы Monitoring.Sensors_Desc беру Select'ом три поля SensorID, TableName, CmdLine и скидываю в файл из переменной $SensorsList.

TableName - содержит имя таблицы в этой же базе данных, куда будет писатся этот параметр.

CmdLine - содержит строку которую надо запустить из sh-скрипта, что бы получить искомый параметр, должна быть одна строка и возвращатся должен только один параметр в stdout, допустимы пробелы и всякие pipes и прочие шелловские хитрости.

SensorID - ты в своих таблицах не используешь, нужен для того, что бы хранить все параметры в одной таблице, посмотри мою базу, это таблица из переменной $dbCombinedDataTable (Sensors_Data в моем случае). Я не знаю как лучше хранить параметры, для каждого параметра своя таблица или все вместе в одной таблице со своим SensorID, поэтому пока храню двумя способами, еще не решил как лучше :-)

В файле $SensorsList у меня возникли проблемы с парсингом полей, разделенных табуляцией, не получалось в качестве сепаратора задать табуляцию так, что бы пробелы не воспринимались в качестве тех же сепараторов, поэтому я в качестве field-separator использую то, что в переменной $dbFieldSeparator.

 

2) потом читаю построчно этот файл, парсю и создаю с нуля файл с именем из переменной $ChildScript.

 

3) потом запускаю файл $ChildScript на выполнение, именно этот файл и читает параметры, выводит их в stdout, а первый скрипт ловит их и записывает в базу данных.

Этот файл ($ChildScript) получается примерно такой:

#!/bin/sh
upsc_ups="`upsc ups`"
printf 'SID%d: %s TableName%d: %s Value%d: ' 1 1 1 battery_charge 1 
echo "$upsc_ups" | grep battery.charge: | cut -d" " -f2
printf 'SID%d: %s TableName%d: %s Value%d: ' 2 2 2 battery_runtime 2 
echo "$upsc_ups" | grep battery.runtime: | cut -d" " -f2
.... и так далее .......

 

А его вывод - примерно такой:

SID1: 1 TableName1: battery_charge Value1: 100
SID2: 2 TableName2: battery_runtime Value2: 1230
.... и так далее .......

Тут еще один важный момент - мне не хотелось в $ChildScript много раз запускать upsc ups, поэтому я запускаю его один раз в начале а ответ (весь) присваиваю переменной $upsc_ups, из которой потом и выделяю нужную мне инфу, ссылки прямо на эту переменную и можно увидеть в базе в поле CmdLine.

 

Теперь о корявостях:

а) Хотелось бы обойтись без создания лишнего файла $SensorsList, но у меня не получалось в цикле правильно парсить то, что возвращает select, мешали пробелы в CmdLine. Но это точно возможно, может быть еще поиграюсь на выходные, но не обещаю

 

б) Хотелось бы обойтись без создания лишнего файла $ChildScript, но опять же - у меня не получалось правильно парсить в цикле то, что возвращает select, мешали те же пробелы. Кроме этого тут есть еще одна проблема - даже если бы удалось правильно отпарсить CmdLine, то все равно не получалось правильно передать эту строку на выполнение, тут уже мешали не пробелы, а конвееры (символ '|'), они не обрабатываются последовательно, а обрабатываются как одна команда. Но если хорошо подумать, то может это и не корявость вовсе, а настоящая фича - можно так все организовать, что этот мой скрипт будет запускатся только один раз при изменении конфигурации, после чего он создаст дочерний скрипт $ChildScript, который полностью самостоятелен и из планировщика можно запускать только его. Надо только немного поменять логику, так что бы Insert был непосредственно в $ChildScript, это совсем просто, после чего так и оставлю...

 

И еще - в моей таблице Monitoring.Sensors_Desc порядковый номер рекорда (при сортировке по SensorID) совпадает с самим SensorID, что в общем случае совсем не обязательно, если будете что-то менять - осторожно с этим, именно для этого в циклах используются переменные $cnt1 и $cnt2, а не SensorID.

 

Сам скрипт тут (пароли, имена и пути - ваши, подредактируйте, как минимум - в четырех местах):

#!/bin/sh

dbHost="localhost"
dbase="Monitoring"
dbUser="xa-xa-xa"
dbPassword="xu-xu-xu"
dbCombinedDataTable="Sensors_Data"
SensorsList="/volume1/xi-xi-xi/Monitoring-sensors-list.lst"
dbFieldSeparator="-xXx-" #used to separate db fields when do output into text file
ChildScript="/volume1/xe-xe-xe/MonitoringChildScript.sh"
#----------
#delete and create list of parameters (SensorID, TableName, CmdLine)
rm -f "$SensorsList"
result=`mysql -h $dbHost --user=$dbUser --password=$dbPassword --skip-column-names -e "SELECT SensorID, TableName, CmdLine FROM $dbase.Sensors_Desc ORDER BY SensorID into outfile '$SensorsList' FIELDS TERMINATED BY '$dbFieldSeparator'"`
#----------
#create child-script
#rm -f "$ChildScript" #not needed if ">" is in use as a first one
echo "#!/bin/sh" >  "$ChildScript"
echo 'upsc_ups="`upsc ups`"' >> "$ChildScript"
#--------
### loop by parameters #######
cnt1=1  
while read sensor_str #read from file
do
  SensorID=$(echo $sensor_str | awk '{print $1}' FS=$dbFieldSeparator)
  TableName=$(echo $sensor_str | awk '{print $2}' FS=$dbFieldSeparator)
  CmdLine=$(echo $sensor_str | awk '{print $3}' FS=$dbFieldSeparator)
  #printf provide better control on format
  echo "printf 'SID%d: %s TableName%d: %s Value%d: ' $cnt1 $SensorID $cnt1 $TableName $cnt1 " >> "$ChildScript"
  echo "$CmdLine" >> "$ChildScript"
  let cnt1++
done < "$SensorsList"
#run child-script and get result
child_resp="`sh $ChildScript`"
#----------
# main loop, extract and insert data #
let cnt2=1 
while [  $cnt2 -lt $cnt1 ]; do
  SensorID=$(echo "$child_resp" | grep SID$cnt2: | cut -d" " -f2)
  TableName=$(echo "$child_resp" | grep TableName$cnt2: | cut -d" " -f4)
  Value=$(echo "$child_resp" | grep Value$cnt2: | cut -d" " -f6)
  #---
  #insert data into dedicated table
  echo "INSERT INTO $TableName (value) VALUES ($Value);" | mysql -h $dbHost -D$dbase --user=$dbUser --password=$dbPassword
  #insert data into combined table
  echo "INSERT INTO $dbCombinedDataTable (SensorID, Value) VALUES ($SensorID, $Value);" | mysql -h $dbHost -D$dbase --user=$dbUser --password=$dbPassword
  let cnt2++ 
done

Bloody · 27.04.2016

Выложил новую универсальную версию с мастером настройки/конфигурирования системы в первом сообщении.

SergeyASV · 28.04.2016
Выложил новую универсальную версию с мастером настройки/конфигурирования системы в первом сообщении.

 

Моего зухеля в инсталяшке как я понял нет?

satoorn · 28.04.2016

Опробовал новый скрипт

При настройке LAN0, прописывается:

lan0_in=$(snmpwalk -Ov -v 2c -c public 127.0.0.1 1.3.6.1.2.1.31.1.1.1.6.2 | awk '{print $NF}')

lan0_out=$(snmpwalk -Ov -v 2c -c public 127.0.0.1 1.3.6.1.2.1.31.1.1.1.10.2 | awk '{print $NF}')

 

Для 415+ (у меня) надо:

lan0_in=$(snmpwalk -Ov -v 2c -c public 127.0.0.1 1.3.6.1.2.1.31.1.1.1.6.3 | awk "{print $ 2}")

lan0_out=$(snmpwalk -Ov -v 2c -c public 127.0.0.1 1.3.6.1.2.1.31.1.1.1.10.3 | awk "{print $ 2}")

 

PS. Я только учусь.

Изменилось название файла для сетевого интерфейса. Как внести данные в базу SQL?

Imperator · 28.04.2016

А можно ли к легенде добавить текущие значения? Чтобы прямо в подписи к цвету линии и значение ещё было.

Bloody · 28.04.2016
Моего зухеля в инсталяшке как я понял нет?

Держи.

 

PS. Я только учусь.

Изменилось название файла для сетевого интерфейса. Как внести данные в базу SQL?

Да. пришлось поменять, что бы не запутаться впоследствии. У себя я просто удалил новосозданные таблицы в БД, а старые переименовал как надо(через phpMyAdmin).

 

При настройке LAN0, прописывается:

В текстовом поле в процессе установки нужно поменять значения на свои, при формировании вывода всё учитывается. Или уже в готовом скрипте, который нужно копировать в планировщик, поправить нужное. Вариантов море ;)

 

А можно ли к легенде добавить текущие значения? Чтобы прямо в подписи к цвету линии и значение ещё было.

Текущие это которые? Самые последние? Да, думаю, можно. Только эта легенда уж очень график загораживает :)

satoorn · 28.04.2016
Держи.

 

Что то своё дописать, где править (дописывать?)

Bloody · 28.04.2016
Что то своё дописать, где править (дописывать?)

\mon\install\lib\install.xml

Главный установочный конфиг-файл. Инструкции прилагаются. Что бы не запутаться в ветках Xml дерева, можно использовать xml-редактор.

 

В ближайших планах думаю реализовать добавление новых полей прямо из вэб-интерфейса.

SergeyASV · 28.04.2016
Держи.

 

Спасибо!

Кстати, а зачем коэффициент корректировки к процессору зухеля и НАТ сессиям? :wacko:

Bloody · 28.04.2016
зачем коэффициент корректировки к процессору зухеля и НАТ сессиям? :wacko:

Да, лишнее. Просто везде воткнул автоматом :)

SergeyASV · 28.04.2016
Да, лишнее. Просто везде воткнул автоматом :)

Понятно, я выткнул :rolleyes:

 

Что то лиса совсем со стилями мудить начала.

Вот так выглядят кнопки во все браузерах:http://s019.radikal.ru/i617/1604/96/2ae68ef949dd.png

а вот так в лисе: http://s017.radikal.ru/i412/1604/98/5c114ca0c9f3.png

Bloody · 28.04.2016
лиса совсем со стилями мудить начала

Кроссбраузерности в стилях не хватает. Как наваял ;) Выше писали, что при включении "текстовых данных" появлялось всплывающее окошко с ошибкой 200 - тоже косяк то ли браузера, то ли работы ява-скрипта в этом браузере.

SergeyASV · 28.04.2016
при включении "текстовых данных" появлялось всплывающее окошко с ошибкой 200

Есть такое, если попытаться выбрать новый график пока не отрисовался предидущий, то выскакивает.

 

as68 · 28.04.2016
Выложил новую универсальную версию с мастером настройки/конфигурирования системы в первом сообщении.

У меня не устанавливается, вываливается на втором шаге "Ошибка доступа к файлу настроек. Проверьте наличие файла и права доступа."

В чём может быть проблема, пробывал не один раз?

Первый инсталлятор работал.

Imperator · 28.04.2016
Текущие это которые? Самые последние? Да, думаю, можно. Только эта легенда уж очень график загораживает :)

Да, последние. Сейчас, вроде, ничего не загораживает.

Bloody · 28.04.2016
У меня не устанавливается, вываливается на втором шаге "Ошибка доступа к файлу настроек. Проверьте наличие файла и права доступа."

3 xml файла в папке /mon/lib/ и 1 текстовый файл в папке /mon/install/lib должны иметь права 666. Проверьте.

as68 · 28.04.2016
3 xml файла в папке /mon/lib/ и 1 текстовый файл в папке /mon/install/lib должны иметь права 666. Проверьте.

Да, спасибо, права были 777 на всех, изменил на 666 - всё пошло.

satoorn · 28.04.2016

Поправил для себя, выскакивают несколько ошибок:

ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1

 

# cat TaskScript.txt

#!/bin/sh

DT=`date "+%d/%m/%y %H:%M "`

dt=`date "+%Y-%m-%d %H:%M"`

tstmp=`date -d "$dt" "+%s"`

 

dbhost=localhost

dbname=graph

dbuser=graph

dbpassword=

sleep 5

cpu_load_user=$(snmpwalk -Ov -v 2c -c public 127.0.0.1 1.3.6.1.4.1.2021.11.9.0 | awk '{print $NF}')

sleep 5

cpu_load_sys=$(snmpwalk -Ov -v 2c -c public 127.0.0.1 1.3.6.1.4.1.2021.11.10.0 | awk '{print $NF}')

let "cpu_load = cpu_load_user + cpu_load_sys"

cores=`cat /proc/cpuinfo | grep -i "cpu cores" | awk 'NR==1 {print $NF}'`

counter=0

while [ "$counter" -lt "$cores" ]

do

temperature=$((`cat /sys/class/hwmon/hwmon0/device/temp$(( $counter + 2 ))_input` / 1000))

total=$(( $total + $temperature ))

counter=$(( $counter + 1 ))

done

cpu_temp=$(( $total / $cores ))

hdd0_temp=$(snmpwalk -Ov -v 2c -c public 127.0.0.1 1.3.6.1.4.1.6574.2.1.1.6.0 | awk '{print $NF}')

hdd1_temp=$(snmpwalk -Ov -v 2c -c public 127.0.0.1 1.3.6.1.4.1.6574.2.1.1.6.1 | awk '{print $NF}')

hdd2_temp=$(snmpwalk -Ov -v 2c -c public 127.0.0.1 1.3.6.1.4.1.6574.2.1.1.6.2 | awk '{print $NF}')

hdd3_temp=$(snmpwalk -Ov -v 2c -c public 127.0.0.1 1.3.6.1.4.1.6574.2.1.1.6.3 | awk '{print $NF}')

sys_temp=$(snmpwalk -Ov -v 2c -c public 127.0.0.1 1.3.6.1.4.1.6574.1.2.0 | awk '{print $NF}')

lan0_in=$(snmpwalk -Ov -v 2c -c public 127.0.0.1 1.3.6.1.2.1.31.1.1.1.6.3 | awk '{print $NF}')

lan0_out=$(snmpwalk -Ov -v 2c -c public 127.0.0.1 1.3.6.1.2.1.31.1.1.1.10.2 | awk '{print $NF}')

volume1_usage_tmp=$(df -l -h /volume1 --output=pcent | tail -1)

volume1_usage=${volume1_usage_tmp//%/}

voltage=$(snmpwalk -Ov -v 2c -c public 192.168.25.18 1.3.6.1.4.1.318.1.1.1.3.2.1.0 | awk "{print $ 2}")

load=$(snmpwalk -Ov -v 2c -c public 192.168.25.18 1.3.6.1.4.1.318.1.1.1.4.2.3.0 | awk "{print $ 2}")

battery=$(snmpwalk -Ov -v 2c -c public 192.168.25.18 1.3.6.1.4.1.318.1.1.1.2.2.1.0 | awk "{print $ 2}")

asus_cpu_load=$(snmpwalk -Ov -v 2c -c public 192.168.25.25 1.3.6.1.4.1.2021.10.1.3.2 | awk "{print $ 2}")

xer_print_tot=$(snmpwalk -v 2c -c public 192.168.25.26 enterprises.253.8.53.13.2.1.6.1.20.1 | awk "{print $ 4}")

xer_print_col=$(snmpwalk -v 2c -c public 192.168.25.26 enterprises.253.8.53.13.2.1.6.1.20.33 | awk "{print $ 4}")

xer_print_blk=$(snmpwalk -v 2c -c public 192.168.25.26 enterprises.253.8.53.13.2.1.6.1.20.34 | awk "{print $ 4}")

xer_cyan_e=$(snmpwalk -v 2c -c public 192.168.25.26 mib-2.43.11.1.1.9.1.1 | awk "{print $ 4}")

xer_cyan_f=$(snmpwalk -v 2c -c public 192.168.25.26 mib-2.43.11.1.1.8.1.1 | awk "{print $ 4}")

let "xer_cyan = xer_cyan_f - xer_cyan_e"

xer_mag_e=$(snmpwalk -v 2c -c public 192.168.25.26 mib-2.43.11.1.1.9.1.2 | awk "{print $ 4}")

xer_mag_f=$(snmpwalk -v 2c -c public 192.168.25.26 mib-2.43.11.1.1.8.1.2 | awk "{print $ 4}")

let "xer_mag = xer_mag_f - xer_mag_e"

xer_yel_e=$(snmpwalk -v 2c -c public 192.168.25.26 mib-2.43.11.1.1.9.1.3 | awk "{print $ 4}")

xer_yel_f=$(snmpwalk -v 2c -c public 192.168.25.26 mib-2.43.11.1.1.8.1.3 | awk "{print $ 4}")

let "xer_yel = xer_yel_f - xer_yel_e"

xer_blk_e=$(snmpwalk -v 2c -c public 192.168.25.26 mib-2.43.11.1.1.9.1.4 | awk "{print $ 4}")

xer_blk_f=$(snmpwalk -v 2c -c public 192.168.25.26 mib-2.43.11.1.1.8.1.4 | awk "{print $ 4}")

let "xer_blk = xer_blk_f - xer_blk_e"

 

echo "INSERT INTO \`cpu_load\` (\`date\`, \`value\`) VALUES ($tstmp, $cpu_load);" | mysql -h $dbhost -D $dbname --user=$dbuser --password=$dbpassword

echo "INSERT INTO \`cpu_temp\` (\`date\`, \`value\`) VALUES ($tstmp, $cpu_temp);" | mysql -h $dbhost -D $dbname --user=$dbuser --password=$dbpassword

echo "INSERT INTO \`hdd0_temp\` (\`date\`, \`value\`) VALUES ($tstmp, $hdd0_temp);" | mysql -h $dbhost -D $dbname --user=$dbuser --password=$dbpassword

echo "INSERT INTO \`hdd1_temp\` (\`date\`, \`value\`) VALUES ($tstmp, $hdd1_temp);" | mysql -h $dbhost -D $dbname --user=$dbuser --password=$dbpassword

echo "INSERT INTO \`hdd2_temp\` (\`date\`, \`value\`) VALUES ($tstmp, $hdd2_temp);" | mysql -h $dbhost -D $dbname --user=$dbuser --password=$dbpassword

echo "INSERT INTO \`hdd3_temp\` (\`date\`, \`value\`) VALUES ($tstmp, $hdd3_temp);" | mysql -h $dbhost -D $dbname --user=$dbuser --password=$dbpassword

echo "INSERT INTO \`sys_temp\` (\`date\`, \`value\`) VALUES ($tstmp, $sys_temp);" | mysql -h $dbhost -D $dbname --user=$dbuser --password=$dbpassword

echo "INSERT INTO \`lan0_in\` (\`date\`, \`value\`) VALUES ($tstmp, $lan0_in);" | mysql -h $dbhost -D $dbname --user=$dbuser --password=$dbpassword

echo "INSERT INTO \`lan0_out\` (\`date\`, \`value\`) VALUES ($tstmp, $lan0_out);" | mysql -h $dbhost -D $dbname --user=$dbuser --password=$dbpassword

echo "INSERT INTO \`volume1_usage\` (\`date\`, \`value\`) VALUES ($tstmp, $volume1_usage);" | mysql -h $dbhost -D $dbname --user=$dbuser --password=$dbpassword

echo "INSERT INTO \`voltage\` (\`date\`, \`value\`) VALUES ($tstmp, $voltage);" | mysql -h $dbhost -D $dbname --user=$dbuser --password=$dbpassword

echo "INSERT INTO \`load\` (\`date\`, \`value\`) VALUES ($tstmp, $load);" | mysql -h $dbhost -D $dbname --user=$dbuser --password=$dbpassword

echo "INSERT INTO \`battery\` (\`date\`, \`value\`) VALUES ($tstmp, $battery);" | mysql -h $dbhost -D $dbname --user=$dbuser --password=$dbpassword

echo "INSERT INTO \`asus_cpu\` (\`date\`, \`value\`) VALUES ($tstmp, $asus_cpu);" | mysql -h $dbhost -D $dbname --user=$dbuser --password=$dbpassword

echo "INSERT INTO \`xer_print_tot\` (\`date\`, \`value\`) VALUES ($tstmp, $xer_print_tot);" | mysql -h $dbhost -D $dbname --user=$dbuser --password=$dbpassword

echo "INSERT INTO \`xer_print_col\` (\`date\`, \`value\`) VALUES ($tstmp, $xer_print_col);" | mysql -h $dbhost -D $dbname --user=$dbuser --password=$dbpassword

echo "INSERT INTO \`xer_print_blk\` (\`date\`, \`value\`) VALUES ($tstmp, $xer_print_blk);" | mysql -h $dbhost -D $dbname --user=$dbuser --password=$dbpassword

echo "INSERT INTO \`Cyan\` (\`date\`, \`value\`) VALUES ($tstmp, $Cyan);" | mysql -h $dbhost -D $dbname --user=$dbuser --password=$dbpassword

echo "INSERT INTO \`Magenta\` (\`date\`, \`value\`) VALUES ($tstmp, $Magenta);" | mysql -h $dbhost -D $dbname --user=$dbuser --password=$dbpassword

echo "INSERT INTO \`Yellow\` (\`date\`, \`value\`) VALUES ($tstmp, $Yellow);" | mysql -h $dbhost -D $dbname --user=$dbuser --password=$dbpassword

echo "INSERT INTO \`Black\` (\`date\`, \`value\`) VALUES ($tstmp, $Black);" | mysql -h $dbhost -D $dbname --user=$dbuser --password=$dbpassword

 

Ошибки на:

asus CPU Load

xer_cyan

xer_mag

xer_yel

xer_blk

 

И почему то не создаются файлы логов, сразу в базу пишет?

Bloody · 28.04.2016
почему то не создаются файлы логов, сразу в базу пишет?

На втором шаге сверху по умолчанию включена запись только в mysql. рядом надо поставить галочку у TXT логов.

 

Ошибок в синтаксисе не вижу. Может какие непечатные символы. Можно увидеть ваш install.xml? (файлом, в лс)

satoorn · 28.04.2016
На втором шаге сверху по умолчанию включена запись только в mysql. рядом надо поставить галочку у TXT логов.

 

Ошибок в синтаксисе не вижу. Может какие непечатные символы. Можно увидеть ваш install.xml? (файлом, в лс)

Сегодня первый раз работал с xml, но вроде не сложно. )) Ссылку отправил в личку.

DEV · 28.04.2016
Да, спасибо, права были 777 на всех, изменил на 666 - всё пошло.

 

аналогично, такая же проблема была

 

Автору ещё раз Спасибо! за обновление

пока всё нормально, пробуем

Bloody · 28.04.2016
аналогично, такая же проблема была

Виндовые архиваторы плюют на линуксовые права :lol: Буду паковать в *.tar.gz

Bloody · 28.04.2016
А можно ли к легенде добавить текущие значения? Чтобы прямо в подписи к цвету линии и значение ещё было.

Пробуй.

Imperator · 29.04.2016
Пробуй.

Cannot find data. У меня ещё первая версия где всё руками настраивалось. Может из-за этого?

Bloody · 29.04.2016
У меня ещё первая версия где всё руками настраивалось.

Тогда возвращай старый файл, и вот эту секцию замени:

    # Добавим легенду
    
    if ($mSetLegend == 1) {
        for ($x=0; $x < $mCount; $x++) {
            if (FALSE == ${'data'.$x}) continue;
        
            if (isset(${'data'.$x}['stopend'])) $end_val = ${'data'.$x}['value'][${'data'.$x}['stopend'] - 1];
            else $end_val = end(${'data'.$x}['value']);
            
            ${'rts'.$x}->SetLegend(${'mLineTitle'.$x} . ': ' . $end_val);
        }
        $graph->legend->SetPos(0.02, 0.02);
    }

sidor_ii · 29.04.2016

Офф.

Мне или кажется или вы тут все общими усилиями новый кактус пишете ?

Поправте если я не прав :D

Imperator · 29.04.2016
Тогда возвращай старый файл, и вот эту секцию замени:

Отлично!

niks · 29.04.2016
Спасибо за ответ.

При замене кода в graphic.php перестал вообще рисовать даже из папки log. На счёт замены в func.php вообще извините ничего непонял. У меня папки log и log1 находятся на одном уровне, т.е в каталоге web. Зачем мне поиск по имени от папки log во внутрь. Извините за непонятливость если что.

 

В папке log у меня логи с Synology всё рисовалось превосходно. В папке log1 у меня логи с роутера (там запущен скрипт в кроне, пишет в log1 в тхт файл в том же формате ). Повторю, папки находятся на одном уровне. Мне нужно читать одновременно из двух папок. :)

Bloody если не затруднит помогите с исправлением func.php в старой версии для считывания логов из нескольких директорий.

Bloody · 29.04.2016
помогите с исправлением func.php в старой версии для считывания логов из нескольких директорий.

Одним файлом тут не обойтись. Вот эти два замените, один добавьте -> туц

 

Офф.

Мне или кажется или вы тут все общими усилиями новый кактус пишете ?

[off]Пока что это больше смахивает на лысый кактус :)[/off]

niks · 29.04.2016
Одним файлом тут не обойтись. Вот эти два замените, один добавьте -> туц

Спасибо огромное усё заработало :lol:

 

SergeyASV · 11.05.2016

Что то темка заглохла...

Все наигрались с мониторингом?

Bloody · 11.05.2016
Все наигрались с мониторингом?

Сам же говорил - больше полугода назад поставил, настроил, и всё пишется/работает. Основной функционал работает, и хорошо.

niks · 11.05.2016
Что то темка заглохла...

Все наигрались с мониторингом?

Все прекрасно работает, графики просматриваю постоянно. Благодаря мониторингу обнаружил значительные перепады по по входному напряжению, переделал питание, загрузка WAN, LAN, NAT также интересна. Bloody огромный респект.

Bloody · 11.05.2016

Будет интересно собрать получившиеся(рабочие) установочные конфиги для разных устройств. У кого что получилось?

SergeyASV · 11.05.2016
Сам же говорил - больше полугода назад поставил, настроил, и всё пишется/работает. Основной функционал работает, и хорошо.

 

А чего-то вечно не хватает :lol:

Все таки на "< >" сдвиг на полпериода хочется, а на "<< >>" на период а не на 7 как сейчас.

SergeyASV · 11.05.2016
Благодаря мониторингу обнаружил значительные перепады по по входному напряжению

По началу я так и задумывал ее как аналог АИИСКУЭ (контроль и учет электроэнергии) т.к. ночью в розетке у меня 250V., потом губу разьело и захотелось мониторить еще кучу параметров.

 

uto4kin · 20.05.2016
3 xml файла в папке /mon/lib/ и 1 текстовый файл в папке /mon/install/lib должны иметь права 666. Проверьте.

а можете помочь и более менее подробно рассказать как это сделать? я так подозреваю что при помощи Putty? но я в этом не силен, пока удалось только скачать эту программу и подключиться к серверу

Bloody · 20.05.2016

uto4kin, это можно сделать и стандартными средствами DSM. Изобразил картинкой.

howto_666.png

uto4kin · 21.05.2016
Bloody, спасибо! я уже и с putty разобрался )
DEV · 21.05.2016
WinSCP тоже очень часто используемый инструмент для настройки сервера
SergeS · 21.05.2016
uto4kin, это можно сделать и стандартными средствами DSM. Изобразил картинкой.

howto_666.png

 

Я тут какое-то время не следил, потерялся, где скачать последню версию?

Bloody · 21.05.2016
Я тут какое-то время не следил, потерялся, где скачать последню версию?

Их на текущий момент две - старая, с прописанным конфигом под конкретные ситуации. И новая, с переделанным установщиком, позволяющим настроить систему под себя. Все ссылки в первом сообщении темы. За последний месяц особо ничего не изменилось...

SergeS · 21.05.2016
Их на текущий момент две - старая, с прописанным конфигом под конкретные ситуации. И новая, с переделанным установщиком, позволяющим настроить систему под себя. Все ссылки в первом сообщении темы. За последний месяц особо ничего не изменилось...

 

Спасибо, попробую наверное новую на выходные...

А какие преимущества у старой версии по сравнению с новой, что вы держите обе?

Bloody · 21.05.2016
А какие преимущества у старой версии по сравнению с новой, что вы держите обе?

Да никаких, на мой взгляд. Просто переезд с одной версии на другую не совсем гладок. Кто то уже настроил старую, всё устроило, и ничего больше не надо :)

XerSonik · 22.05.2016
Да никаких, на мой взгляд. Просто переезд с одной версии на другую не совсем гладок. Кто то уже настроил старую, всё устроило, и ничего больше не надо :)

 

Поставил v.2.0 на Хренологию (Case HP G7 & AsRosk QC5000-ITX/PH/4GB RAM/HDD1-HP 250GB/HDD2-WDRED 3TB/HDD3-SEAGATE 500GB/TP-Link TL-SC3130/XPEnoBoot 5.2-5644.5/DSM 5.2-5967 Update 1)

 

http://puu.sh/p0LYa/b711a1ab06.png

 

Спасибо, все пашет на ура! SQL рулит :)

Так как DSM не чего не знает про проц AMD FT3 Kabini A4-5000 Quad-Core APU, то и температуры CPU нет!

И где ее искать, только богу известно.

 

DS3615xs> cat /proc/cpuinfo | more
processor        : 0
vendor_id        : AuthenticAMD
cpu family        : 22
model                : 0
model name        : AMD A4-5000 APU with Radeon(TM) HD Graphics
stepping        : 1
microcode        : 0x700010b
cpu MHz                : 800.000
cache size        : 2048 KB
physical id        : 0
siblings        : 4
core id                : 0
cpu cores        : 4
apicid                : 0
initial apicid        : 0
fpu                : yes
fpu_exception        : yes
cpuid level        : 13
wp                : yes
flags                : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc extd_apicid aperfmperf eagerfpu pni pclmulqdq monitor ssse3 cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c lahf_lm cmp_legacy svm extapic cr8_legacy aw ibs skinit wdt topoext perfctr_nb perfctr_l2 arat xsaveopt hw_pstate proc_feedback npt lbrv svm_lock nrip_save tsc_scale flushbyasid decodeassists pausefilter pfthreshold bmi1
bogomips        : 2994.04
TLB size        : 1024 4K pages
clflush size        : 64
cache_alignment        : 64
address sizes        : 40 bits physical, 48 bits virtual
power management: ts ttp tm 100mhzsteps hwpstate [11]

DEV · 22.05.2016
Так как DSM не чего не знает про проц AMD FT3 Kabini A4-5000 Quad-Core APU, то и температуры CPU нет!

И где ее искать, только богу известно.

 

покажите что у вас по этому пути: /sys/class/hwmon/hwmon0/device/

 

DSM и про проц n3150 "не чего не знает", а hwmon есть и монитор работает!

server> cd /sys/class/hwmon/hwmon0/device
server> ls
driver            temp2_crit_alarm  temp3_label       temp5_crit
hwmon             temp2_input       temp3_max         temp5_crit_alarm
modalias          temp2_label       temp4_crit        temp5_input
name              temp2_max         temp4_crit_alarm  temp5_label
power             temp3_crit        temp4_input       temp5_max
subsystem         temp3_crit_alarm  temp4_label       uevent
temp2_crit        temp3_input       temp4_max
server>

XerSonik · 22.05.2016
покажите что у вас по этому пути: /sys/class/hwmon/hwmon0/device/

 

cd /sys/class/hwmon/

 

Девственно пусто.

XerSonik · 22.05.2016
DSM и про проц n3150 "не чего не знает", а hwmon есть и монитор работает!

 

Ну тут Вы не правы, знает и даже юзает в DS716+

 

https://www.synology.com/ru-ru/products/DS716+#spec

DEV · 22.05.2016
cd /sys/class/hwmon/

 

Девственно пусто.

 

а так: /sys/devices/platform/coretemp.0/

 

вообще в поиске задайте что то типа: temp_input или temp1_input, temp2_input...

 

знает и даже юзает в DS716+

 

да, но у меня же не DS716+ девайс а самосбор на базе asrock N3150DC-ITX и dsm DS3615xs такой же версии как у вас

XerSonik · 22.05.2016
а так: /sys/devices/platform/coretemp.0/

 

вообще в поиске задайте что то типа: temp_input или temp1_input, temp2_input...

 

cd /sys/devices/platform/
ls
alarmtimer  power       uevent      vga16fb.0
i8042       serial8250  vesafb.0

DEV · 22.05.2016
cd /sys/devices/platform/
ls
alarmtimer  power       uevent      vga16fb.0
i8042       serial8250  vesafb.0

 

печалька, по ходу на вашем железе не установлен температурный сенсор?

 

 

P.S. кстати с удивлением у себя обнаружил что temp_input расположены в трёх директориях:

/sys/class/hwmon/hwmon0/device/... и /sys/devices/platform/coretemp.0/... или /sys/bus/platform/devices/coretemp.0/...

 

server> cat /sys/class/hwmon/hwmon0/device/temp?_input
40000
40000
42000
42000
server> cat /sys/devices/platform/coretemp.0/temp?_input
40000
40000
42000
42000

XerSonik · 22.05.2016
печалька, по ходу на вашем железе не установлен температурный сенсор?

 

 

P.S. кстати с удивлением у себя обнаружил что temp_input расположены в двух директориях:

/sys/class/hwmon/hwmon0/device/... и /sys/devices/platform/coretemp.0/...

server> cat /sys/class/hwmon/hwmon0/device/temp?_input
40000
40000
42000
42000
server> cat /sys/devices/platform/coretemp.0/temp?_input
40000
40000
42000
42000

 

http://www.asrock.com/mb/AMD/QC5000-ITXWiF...=Specifications

Контроль оборудования

- Датчик температуры процессора

- Датчик температуры корпуса

DEV · 22.05.2016
- Датчик температуры процессора

- Датчик температуры корпуса

 

Датчик есть, было бы страно если в новом железе его не было

вопрос только в том есть ли дрова в dsm для этого датчика?

 

поиск temp_input что нибудь указал?

 

выполнить команду: find / -name fileName

server> find / -name temp2_input
find: /proc/27935: No such file or directory
/sys/devices/platform/coretemp.0/temp2_input

XerSonik · 22.05.2016
find / -name temp_input
find / -name temp2_input
find: /proc/27781: No such file or directory
find: /proc/27782: No such file or directory
find: /proc/27783: No such file or directory
find / -name temp3_input
find / -name temp0_input

Bloody · 22.05.2016
P.S. кстати с удивлением у себя обнаружил что temp_input расположены в трёх директориях:

/sys/class/hwmon/hwmon0/device/... и /sys/devices/platform/coretemp.0/... или /sys/bus/platform/devices/coretemp.0/...

Симлинки. В процессе поиска сначала на coretemp.0 как раз наткнулся. Позже оказалось, что hwmon будет получше.

DEV · 22.05.2016
Симлинки. В процессе поиска сначала на coretemp.0 как раз наткнулся. Позже оказалось, что hwmon будет получше.

да так и есть hwmon - drwxr-xr-x - d directory

lrwxrwxrwx - l symbolischer Link

server> cd /sys/class/hwmon/hwmon0/device/
server> ls -lh
lrwxrwxrwx    1 root     root           0 May 22 22:33 driver -> ../../../bus/platform/drivers/coretemp
drwxr-xr-x    3 root     root           0 May 22 10:01 hwmon
-r--r--r--    1 root     root        4.0K May 22 22:33 modalias
-r--r--r--    1 root     root        4.0K May 22 22:33 name
drwxr-xr-x    2 root     root           0 May 22 22:33 power
lrwxrwxrwx    1 root     root           0 May 22 22:33 subsystem -> ../../../bus/platform

 

Просто я · 28.05.2016

Bloody

Делал по инструкции: мониторинг с инсталлятором от 28.04.2016, архив в web распаковал, права 666 на 3 xml и 1 txt выставил (было 777, хотя распаковал в FileSatation), запускаю установку по пути http://192.168.1.3/mon/install/

Не запускается вообще (Страница 192.168.1.3 не работает, Сайт 192.168.1.3 пока не может обработать этот запрос.).

Вроде инструкция проще некуда... Делаю на 214play, DSM 4.3-3827. Может DSM не подходит?

Bloody · 28.05.2016
Делал по инструкции

Веб-служба в сино включена? 1.3 - адрес станции? На DSM 4 не довелось протестировать.

Просто я · 28.05.2016
Веб-служба в сино включена? 1.3 - адрес станции? На DSM 4 не довелось протестировать.

Включена (уже и перезапускал даже после распаковки). 1.3 - адрес станции. Вряд ли от версии DSM должно зависеть имхо. Запускал на Win7 в Chrome и IE11. Странно...

Bloody · 28.05.2016
Включена

Если путь явно указать? http://192.168.1.3/mon/install/index.php

Папка web лежит в корне раздела, и в ней папка mon, всё так? По этому мануалу попробуйте проверить работу веб-станции.

Просто я · 28.05.2016
Если путь явно указать? http://192.168.1.3/mon/install/index.php

Папка web лежит в корне раздела, и в ней папка mon, всё так? По этому мануалу попробуйте проверить работу веб-станции.

С путем пробовал, не помогает. С папками все как положено, web в корне раздела, в ней mon. Попробовал отключить касперского и adguard (хотя разрешения в них настроены для 192.168.1.3) - не помогло.

Web работает, и index.html запускается и по http://192.168.1.3/mon можно увидеть ваш Synology Monitoring, только без графиков. Не запускается только /mon/install/.

 

Запустил http://192.168.1.3/mon/install/index.php с отображением ошибок PHP, выдало такое: Parse error: syntax error, unexpected '[' in /volume1/web/mon/install/lib/func_install.php on line 30

Bloody · 28.05.2016
Parse error: syntax error, unexpected '[' in /volume1/web/mon/install/lib/func_install.php on line 30

Объявление массивов через квадратные скобки. Версия PHP старая. Тогда печаль.

Просто я · 28.05.2016
Объявление массивов через квадратные скобки. Версия PHP старая. Тогда печаль.

Ясно, вина DSM все-таки и нужно обновляться чтобы работало. Подумаю, нужно ли мне оно :rolleyes:

Bloody · 28.05.2016
Подумаю, нужно ли мне оно :rolleyes:

Я так же о 6й версии думаю :) Все говорят, намного быстрее работает. С другой стороны - оно и так работает, зачем трогать.

DEV · 28.05.2016
Делаю на 214play, DSM 4.3-3827...

 

вы вообще в курсе о том какие изменения произошли начиная с версии DSM 5.2-хххх?

 

про 6 версию не могу сказать так как использую своё самосборное железо не от сино, а загрузчик XPEnoboot для DSM6 пока не готов и как только выйдет то

поставлю 6 не на секунду не задумываясь типа "Подумаю, нужно ли мне оно"

Bloody · 28.05.2016
поставлю 6 не на секунду не задумываясь типа "Подумаю, нужно ли мне оно"

Поставил. Сразу же вылезли несовместимости с некоторыми пакетами (для меня не критичные. Asterisk для DSM 6 вообще не будет, например). Убрали root-а. Теперь логин под админом и повышение прав вручную. Всё, конечно, решаемо, но не так, что обновил - и всё как раньше работает.

DEV · 29.05.2016
Всё, конечно, решаемо...

вот именно

 

Asterisk для DSM 6 вообще не будет

 

а по поводу пакетов стратегия сино такова что взамен вы получаете виртуализацию да и ещё в двух вариантах, в том же докере вы найдёте почти всё что вам надо, кроме винды пока

 

естественно владельцы слабых девайсов-супербюджетников остаются за бортом, но допустим тех кто сидит на самосборе и xpenology это не касается так как у них у всех установлен DS3615xs :P

и это и есть одно из преемуществ в качестве гибкости использования железа, это как бы плюшка-компенсация для тех кто мастерит сам своими руками а не довольствуется готовыми решениями которые к тому же и стоят втри дорога и не адекватно установленным компонентам, хотя даже при этом раскладе ценовой фактор не является основным для сборщиков энтузиастов, для них решающим всё таки является свобода выбора и строить то что они конкректно хотят под конкректные задачи

4sag · 30.06.2016

На xpenology DSM 5.2-5967 Update 1 не показывает cpu load !

версия мониторинга от 04.04.2016

мать ga-z97n-wifi

проц i5-4590S

не создается файл cpu_load.txt, хотя команды:

snmpwalk -Ov -v 2c -c public 127.0.0.1 1.3.6.1.4.1.2021.11.9.0

snmpwalk -Ov -v 2c -c public 127.0.0.1 1.3.6.1.4.1.2021.11.10.0

отрабатывают нормально

 

Bloody · 30.06.2016
не создается файл cpu_load.txt

Совсем не создается, или в нем нет значений загрузки CPU?

4sag · 01.07.2016
Совсем не создается, или в нем нет значений загрузки CPU?

совсем !)

Bloody · 01.07.2016

Проверьте скрипт в планировщике, верно ли скопирован(или, при вносе исправлений - не закралась ли где ошибка). Если всё верно, то можно попробовать создать новый файл с нужным именем, и установив на него права, аналогичные соседним файлам.

4sag · 03.07.2016
Проверьте скрипт в планировщике, верно ли скопирован(или, при вносе исправлений - не закралась ли где ошибка). Если всё верно, то можно попробовать создать новый файл с нужным именем, и установив на него права, аналогичные соседним файлам.

ошибка в этой строке

echo -e "$DT\t$cpu_load" >> $LOG9

у тебя $LOG8 !

Bloody · 03.07.2016
ошибка в этой строке

Спасибо, поправил. А чем последняя версия не понравилась?

4sag · 03.07.2016
Спасибо, поправил. А чем последняя версия не понравилась?

Настроил работает

Bloody · 15.07.2016

Новая сборка от 15.07.2016. Смотрите первое сообщение темы.

NikNikols · 31.10.2016

Доброго времени суток....

 

В/На Украине, в ночь с 29 на 30 октября был перевод на зимнее время на один час назад. На НАСе время перевелось нормально.

Теперь в мониторинге если данные читаются с MySQL графики сдвинуты на один час вперёд, а если из TXT то всё нормально

 

Ночь с 29 на 30 Перевод времени. Данные из MySQL

http://img-host.org.ua/images/130sql.jpg

 

Ночь с 29 на 30 Перевод времени. Данные из TXT

http://img-host.org.ua/images/130txt.jpg

 

 

Следующие два скриншота сняты почти в одно и тоже время

 

31 октября данные из MySQL. График сдвинут на один час вперёд

http://img-host.org.ua/images/231sql.jpg

 

31 октября данные из TXT. График отображается нормально

http://img-host.org.ua/images/131txt.jpg

 

Вопрос что теперь делать со сдвигом графиков при чтении данных из MySQL?

Bloody · 01.11.2016
NikNikols, что написано в файле /mon/lib/conf_tz.xml?
NikNikols · 01.11.2016
NikNikols, что написано в файле /mon/lib/conf_tz.xml?

 

По указанному пути такого файла нет

Bloody · 01.11.2016

Старая версия скриптов? Пришлите свой файл graphic.php(можно в лс).

----------

В новой версии проблем с временным сдвигом быть не должно, так как часовой пояс указывается при настройке. Вам необходимо в файле graphic.php изменить эту строчку:

date_default_timezone_set('Europe/Moscow');

на

date_default_timezone_set('Europe/Kiev');

NikNikols · 01.11.2016
Старая версия скриптов? Пришлите свой файл graphic.php(можно в лс).

----------

В новой версии проблем с временным сдвигом быть не должно, так как часовой пояс указывается при настройке. Вам необходимо в файле graphic.php изменить эту строчку:

date_default_timezone_set('Europe/Moscow');

на

date_default_timezone_set('Europe/Kiev');

 

Дома буду исправлю

 

Добрался домой. Исправил. Заработало так как надо. Спасибо

NikNikols · 02.11.2016

Хочется сказать огромное спасибо автору. :rolleyes:

Разглядывая графики узнал очень много нового. B)

 

А можно хотелку?

 

В следующих версиях предусмотреть сбор статистики раз в минуту, а в мониторинге добавить или чекбокс или еще както выбор дискретности отрисовки графиков по минутным отсчётам или по 5 или еще как...

Bloody · 20.12.2016
выбор дискретности отрисовки графиков по минутным отсчётам или по 5 или еще как...

Отчасти это реализовано в "сглаживании" графиков.

Насчет сбора данных раз в минуту - получится слишком много данных, для этого потребуется менять концепцию приложения, и это тянет уже на версию 2.0(будущее которой весьма под вопросом :mellow: )

SLL · 01.03.2017

Если это ещё кому-то нужно, то на DS1515+ температура в /sys/devices/platform/coretemp.0/temp?_input, а диски /run/synostorage/disks/sda/temperature, /run/synostorage/disks/sdb/temperature, и так далее...

Bloody · 02.03.2017

Спасибо за информацию.

yuoras · 24.03.2017

Хочу себе установить .

Указанные ссылки в первом сообщении все битые.

 

Поделитесь , кто то инсталятором на два диска

Bloody · 26.03.2017
Указанные ссылки в первом сообщении все битые.

Не только в первом сообщении, но и в последующих, благодаря изменению политики дропбокса. Поправил ссылки, и расшарил папку со всеми материалами по теме. Ссылка так же в первом сообщении.

SergeyASV · 05.04.2017

Bloody

А ты на 7-й пых так и не перешел? Вроде пошустрее работает и графики покрасивше с новым jpgraph/

Siroc-co · 05.04.2017
Bloody

А ты на 7-й пых так и не перешел? Вроде пошустрее работает и графики покрасивше с новым jpgraph/

Да тут многие побаиваются с DSM5 уходить (и я их понимаю), а вы про php...

SergeyASV · 05.04.2017
Да тут многие побаиваются с DSM5 уходить (и я их понимаю), а вы про php...

Фотостанция новая на 7-м просто летает. Разница очень ощутима.

Bloody · 05.04.2017
Bloody

А ты на 7-й пых так и не перешел?

Перешёл, так же заменив папку старого jpgraph на новую 4.0.2 версию (брал с офф сайта). Единственное, в настройках приложения "вэб-станция" подключил те же модули, что были включены ранее(почему выключились - загадка).

Апач 2.4 и пхп 7 полёт нормальный.

niks · 06.04.2017
Перешёл, так же заменив папку старого jpgraph на новую 4.0.2 версию (брал с офф сайта). Единственное, в настройках приложения "вэб-станция" подключил те же модули, что были включены ранее(почему выключились - загадка).

Апач 2.4 и пхп 7 полёт нормальный.

Bloody спасибо за подсказку, с новым jpgraph немного интересней

Siroc-co · 06.04.2017
Bloody спасибо за подсказку, с новым jpgraph немного интересней

Сделайте скрин. Интересно же.

niks · 06.04.2017
Сделайте скрин. Интересно же.

2c4e53566f55246dc0506fecb13ccbbe.png

SergeyASV · 07.04.2017
Перешёл, так же заменив папку старого jpgraph на новую 4.0.2 версию (брал с офф сайта). Единственное, в настройках приложения "вэб-станция" подключил те же модули, что были включены ранее(почему выключились - загадка).

Апач 2.4 и пхп 7 полёт нормальный.

На сайте 4.0.3 про лежит, может скоро фри новую выкатят.

ZARuslan · 13.04.2017

Здравствуйте!

Попытался установить, не вышло. В линуксе не силён, прошу сильно не пинать.

1) Скачал архив, скопировал в папку на нас'е. Далее встроенным файл менеджером синолоджи распоковал.

2) Сделал всё, что было указано в цитате:

1. Заходим в веб-интерфейс управления Synology

2. Включаем Web Station на Synology (Панель управления -> Веб-службы). На DSM 6 необходимо наличие пакета Web Station, устанавливается из стандартного репозитория.

3. Распаковываем содержимое архива в папку "web" (создается в корне дискового раздела при запуске Web Station). В папке "web" должно получиться 3 папки - "jpgraph", "log" и "mon"

4. Открываем в веб-браузере страницу http://192.168.1.50/mon/install/ (192.168.1.50 - адрес Вашего Synology в локальной сети) для дальнейших инструкций

3) Зашёл на страничку. Там было написано, что надо скачать PhpMyAdmin, включить SNMP v1, v2. Community вбил ручками public. Вбил права доступа через WinSCP по образцу

4) Снова вернулся на страничку установки. В поле оставил источник БД, и написал туда свой желаемый пароль (по описанию я понял так, что если не ставим галки о сохранении старого пороля, то система забивает тот пароль, который я указал.

5) После нажатия кнопки далее вышла ошибка, данная страница не найдена. Удаление содержимого web, MyPhpAdmin/Maria DB/ отключение служб веба и снмп ничего не дали.

Буду рад любой помощи!

Спасибо!

SergeyASV · 14.04.2017
Здравствуйте!

Удаление содержимого web, MyPhpAdmin/Maria DB/ отключение служб веба и снмп ничего не дали.

Буду рад любой помощи!

Спасибо!

А удалять то зачем надо было? Надо просто посмотреть в папке web/mon появились какие файлы или нет.

SergeS · 20.04.2017

А как через snmpwalk можно получить свободное место на synology томе (ну или процент свободного места - еще лучше)?

 

Где вообще эти сумашедшие числа находить можно? :-) Я б еще добавил показометр для параметров принтера HP LJ Pro CM1415fnw, ну там к примеру сколько всего страниц распечатано, сколько тонера осталось...

SergeyASV · 21.04.2017
А как через snmpwalk можно получить свободное место на synology томе (ну или процент свободного места - еще лучше)?

 

Где вообще эти сумашедшие числа находить можно? :-) Я б еще добавил показометр для параметров принтера HP LJ Pro CM1415fnw, ну там к примеру сколько всего страниц распечатано, сколько тонера осталось...

Поиск по ключевым словам "synology oid" выдаст ссылки на документ в котором все написанно.

SergeS · 21.04.2017
Поиск по ключевым словам "synology oid" выдаст ссылки на документ в котором все написанно.

 

Спасибо, вроде нашел, попробую на выхрдные.

dgrees · 24.04.2017

Здравствуйте!

Пытаюсь установить на ds216j c DSM 6.1.

Запустил веб-службу, запустил 1-ю страницу, поставил phpMyAdmin, Maria

Включил SNMP v1, v2., Community вписал public.

Поставил нужные права (666) на 3 xml и 1 txt, указанные ранее (изначально стояли неверные, хотя распаковывал в DSM, не знаю номер, но ls -l показывал прочерки, а после chmod уже rw rw rw).

Вбиваю на 1-ой странице конфигуратора нужный пароль, нажимаю "следующий шаг" и появляется пустая форма с заголовком Synology Monitoring Configurator. В лог поначалу писались ошибки, связанные с функцией показа даты, я это вырезал, но не помогло. Теперь пустой контент почти без ошибок :) всего две ошибки "GET http://192.168.1.105/mon/lib/favicon.ico 500 (Internal Server Error)"

 

Содержимое web/mon:

/volume1/web/mon# ls
css  favicon.ico  graphic.php  img  index.php  install  js  lib  saveconf.php

 

На самой веб-форме, в разделе body

<body>
<div id="wrap">
  <div id="header">
    <div class="content">
      <div id="headertxt">Synology Monitoring Configurator</div>
    </div>
  </div>

  <div id="content">
    <div id="setupdb">
      <div class="content">
        <div id="manual">
        
        </div></div></div></div></div></body>

 

Как можно нормализовать работу конфигуратора?

 

P.S. Разобрался. В Web Station back-end server должен быть Apache2.2 и PHP версии 5.6

dgrees · 25.04.2017

Блин.

Страница с графиками отображается, но везде нет данных. Залез в БД - "MySQL вернула пустой результат (т.е. ноль строк)" для всех таблиц

Сделал вывод логов таски.

 

sh: line 17: [: : integer expression expected
sh: line 23: /  : syntax error: operand expected (error token is "/  ")

 

Вот строки с 17-ю по 23

counter=0
while [ "$counter" -lt "$cores" ]
do
        temperature=$((`cat /sys/class/hwmon/hwmon0/device/temp$(( $counter + 2 ))_input` / 1000))
        total=$(( $total + $temperature ))
        counter=$(( $counter + 1 ))
done

 

Если вбить в ssh

cat /sys/class/hwmon/hwmon0/device/temp2_input

то будет сообщение о том, что путь не найден.

 

Если бы там реально были синтаксические ошибки, это бы у всех не работало, так? Что у меня может быть не так?

dgrees · 25.04.2017

Всем спасибо за помощь :D

 

Пришлось изменить способ задания температуры процессора на

cpu_temp=$((`cat /sys/class/hwmon/hwmon0/temp1_input` / 1000))

именно по такому адресу она у меня лежит.

А строки почему-то не те указывались в ошибке. Может имелись ввиду только строки с выражениями, хз.

Теперь наконец-то нормально заработало :)

Imperator · 26.04.2017

При переключении php с 5.6 на 7.0 пропадают графики, вместо них браузер вроде как не может открыть картинки. jpgraph обновил - не помогло.

 

Разобрался - надо было расширения php включить.

SergeyASV · 26.04.2017

А ни кто не сталкивался с не запуском скрипта сбора данных после перезагрузки НАС ?

У меня переодически после перезагрузки перестают собираться логи, приходится 3-4 раза перезагрузить и тогда все приходит в норму. В планировщике задача якобы выполняется, а на самом деле нет.

niks · 26.04.2017
А ни кто не сталкивался с не запуском скрипта сбора данных после перезагрузки НАС ?

У меня переодически после перезагрузки перестают собираться логи, приходится 3-4 раза перезагрузить и тогда все приходит в норму. В планировщике задача якобы выполняется, а на самом деле нет.

периодически отваливаются логи собираемые по SNMP с удаленных устройств, локальные работают, при перезагрузке все приходит в норму.

SergeS · 27.04.2017
Поиск по ключевым словам "synology oid" выдаст ссылки на документ в котором все написанно.

 

То ли я тупой, то ли дело в лыжах :-)...

 

Ну в общем скачал я вот этот файл: https://global.download.synology.com/downlo...n_MIB_Guide.pdf

Читаю, все вроде понятно, только не работает, и с практикой (которая работает) - не совсем совпадает.

К примеру - я хочу понять из документа, как получить температуру первого диска.

В документе находим Synology Disk MIB, который 1.3.6.1.4.1.6574.2, там же в документе чуть дальше находим Table 4. Disk MIB, где сказано, что .6 возвращает температуру диска. Сразу же возникает вопрос - а какого по счету диска? В описании как то туманно сказано, что количество дисков может быть разное "an additional row containing relevant information will emerge"... Тупо 1.3.6.1.4.1.6574.2.6.0 - не работают вообще, No Such Object.

 

Но если посмотреть на реально работающую строку 1.3.6.1.4.1.6574.2.1.1.6.0, то между Synology Disk MIB (1.3.6.1.4.1.6574.2) и .6, ответственной за температуру не одна, а целых две колонки (.1.1), да еще и .0 после, в самом конце. Что из них, первая .1, вторая .1 или .0 в конце указывают на первый диск? Я так понимаю, что последний нолик, но на что указывают остальные два параметра (.1.1), как я должен понять, что они должны быть добавлены?

 

Хотя например для Model Name, Model Serial Number and The Version of DSM (описанные в System MIB) - у меня проблем не возникло.

 

Как это понимать, как читать этот документ?

 

И еще вопрос - там в конце этого документа есть примеры Useful OIDs, с числами, которые совсем не описаны в теле документа, например 1.3.6.1.4.1.2021.10.1.5.1 (1 minute CPU load). Где брать информацию по этим параметрам/числам?

 

p.s. Запускаю так: snmpwalk -Ov -v 2c -c public 192.168.0.10 1.3.6.1.4.1.6574.2.1.1.6.0

SergeyASV · 27.04.2017
То ли я тупой, то ли дело в лыжах :-)..

Когда я задумал мониторить напряжение в сети, то разобрался во всем этом. (Этот проект вырос как раз из тех наработок.) Сейчас уже почти все забыл (почти 2 года прошло), но большую часть информации находил в инете, еще была программа mib browser или что-то типа того, она позволяет пройтись по всему дереву mib.

И еще вопрос - там в конце этого документа есть примеры Useful OIDs, с числами, которые совсем не описаны в теле документа, например 1.3.6.1.4.1.2021.10.1.5.1 (1 minute CPU load). Где брать информацию по этим параметрам/числам?

Так тут вроде все понятно, там в правой колонке описание есть, это средняя загрузка процессора за 1 минуту. Но только в линухе она в попугаях измеряется и что бы получить полную я складывал ssCpuUser с ssCpuSystem это загрузка процессора юзером и системой.

 

Кстати, 192.168.0.10 это что? если ip адрес НАС-а то лучше писать 127.0.0.1

SergeS · 27.04.2017
Когда я задумал мониторить напряжение в сети, то разобрался во всем этом. (Этот проект вырос как раз из тех наработок.) Сейчас уже почти все забыл (почти 2 года прошло), но большую часть информации находил в инете, еще была программа mib browser или что-то типа того, она позволяет пройтись по всему дереву mib.

 

Так тут вроде все понятно, там в правой колонке описание есть, это средняя загрузка процессора за 1 минуту. Но только в линухе она в попугаях измеряется и что бы получить полную я складывал ssCpuUser с ssCpuSystem это загрузка процессора юзером и системой.

 

Понятно, что вот эта конкретная цепочка чисел возвращает вот этот вот конкретный параметр, описание тоже понятно, непонятно где брать данные для обратной логической цепочки, как от желаемых параметров перейти вот к этим цепочкам чисел. Ну и с единицами измерений - это конечно отдельная песня.

 

За упоминание mib browser - спасибо, поищу.

 

Кстати, 192.168.0.10 это что? если ip адрес НАС-а то лучше писать 127.0.0.1

 

Чем лучше, кроме (возможно) немного меньшей нагрузки?

У меня несколько сетевых устройств, в том числе пара НАСов, данные мониторинга попадают в базу с этим конкретным IP, который указан в командной строке (у меня немного по своему сделано), хотелось бы что бы IP был унифицированный, что бы не гадать потом, к какому конкретно устройству это относится и на каком устройстве скрипт запускался...

dgrees · 27.04.2017
В планировщике задача якобы выполняется, а на самом деле нет.

Мне в мучениях выше помогло включение отладочных сообщений.

 

Bloody

Спасибо за хороший инструмент :)

dgrees · 27.04.2017
выскакивают несколько ошибок:

ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1

Сейчас после обновления столкнулся с такой же ошибкой. Оказывается вызвана была тем, что переменная скормилась с не присвоенным значением. А всё это из-за того что при обновлении слетела конфигурация ИБП-шника, и скрипт не смог получить с него инфу.

SergeyASV · 28.04.2017
Мне в мучениях выше помогло включение отладочных сообщений.

А это где включается?

dgrees · 28.04.2017
А это где включается?

 

В Task Sheduler справа сверху кнопка Settings. Там можно включить и указать, куда складывать output.

SergeyASV · 28.04.2017

dgrees

Все понял, спасибо.

KingTiger · 01.08.2017

Добрый день!

 

Подскажите по настройке.

Пытаюсь установить мониторинг, последнюю версию, на DS 415+

Запускаю инсталлятор, на этапе "настройка системы мониторинга" выбираю "synology diskststion", появляется группа с выбором графиков и дает выбрать только первый график - "График CPU load", остальные чекбоксы не активны.

Тоже самое по настройке графиков для ups.

 

Куда копать? Как заставить быть активными все чекбоксы?

 

Скрипт, который собирает инфу с дисков, системы и т.д. запилил, данные в базу и в текстовые логи падает.

Либо подскажите как настроить работу сайта, чтобы инфа отображалась на графиках.

Не знаю что писать в файле конфигурации индексов, т.к. в php не знаю ничего.

Еще как вариант, может кто поделится содержимым conf_indx.xml , предполагаю что надо его допрописывать и у меня статистика взлетит.

Bloody · 02.08.2017
Как заставить быть активными все чекбоксы?

Какой браузер используете? Возможно, кто то блокирует ява скрипт на странице. Попробуйте отключить адблокер временно, либо через другой браузер.

KingTiger · 02.08.2017
Какой браузер используете? Возможно, кто то блокирует ява скрипт на странице. Попробуйте отключить адблокер временно, либо через другой браузер.

 

Браузер хром, я так и не смог запустить конфигуратор, но разобрался с файлом conf_indx.

Прописал все руками, теперь графики у меня рисуются.

surgeon1 · 19.10.2017

DS115j, DSM 6.1.3 Update 8

Выбранный бекенд - Apache 2.4, PHP 7.0, MariaDB 10

После ввода пароля от рута БД в следующем шаге появляется такое сообщение: Не удалось подключиться к localhost от имени root. Проверьте правильность пароля: No such file or directory

запись root@localhost имеется

В чем может быть проблема?

KingTiger · 19.10.2017
...MariaDB 10 ...

 

Возможно в MariaDB 10, у меня так и не получилось на 10-ку завести.

В меру своих познаний пробовал разные танцы с бубном - не взлетело.

Порты у MariaDB 10 и MariaDB 5 разные, в конфиге пытался прописать, но не помогло.

Поставил 5-ку и живу с ней.

 

 

Bloody · 20.10.2017
MariaDB 10

В данных условиях проект, к сожалению, не тестировался.

surgeon1 · 20.10.2017

А можно адаптировать скрипт под 10ку? Ибо даже PhPMyAdmin который в комплекте идет - не цепляет 5ку. Не спорю, можно включить SSH-туннель и подключиться тем же Navicat'ом, но все же... :rolleyes:

 

UPD:

Подрубил на 5ю Марию, все взлетело кроме температур и лоадаутов... на них просто табличка "Cannot find data"

KingTiger · 20.10.2017
А можно адаптировать скрипт под 10ку? Ибо даже PhPMyAdmin который в комплекте идет - не цепляет 5ку. Не спорю, можно включить SSH-туннель и подключиться тем же Navicat'ом, но все же... :rolleyes:

 

UPD:

Подрубил на 5ю Марию, все взлетело кроме температур... на них просто табличка "Cannot find data"

 

 

Чтобы PhPMyAdmin заработал с 10-кой, надо config.inc.php поправить, что-то типа такого:

/* Server: DB10 [0] */
$i++;
$cfg['Servers'][$i]['verbose'] = 'MariaDB10';
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['port'] = 3307;
$cfg['Servers'][$i]['socket'] = '/run/mysqld/mysqld10.sock';
$cfg['Servers'][$i]['auth_type'] = 'cookie';

/* Server: DB5 [1] */
$i++;
$cfg['Servers'][$i]['verbose'] = 'MariaDB5';
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['port'] = 3306;
$cfg['Servers'][$i]['socket'] = '/run/mysqld/mysqld.sock';
$cfg['Servers'][$i]['auth_type'] = 'cookie';

 

а в мониторинге надо попробовать такую строку для БД прописать localhost:/run/mysqld/mysqld10.sock, нашел где-то на просторах инета.

У меня сейчас нет под рукой syno, не на чем попробовать.

surgeon1 · 20.10.2017

Phpmyadmin из коробки работает с 10кой. Я уже все на 5ке поднял, но скрипт не видит дату из лоадаутов и температур (скорее всего из-за новой DSM). А Paessler PRTG Monitor устанавливать ради одной несчастной тачанки как-то не очень хочется...

KingTiger · 20.10.2017
Phpmyadmin из коробки работает с 10кой. Я уже все на 5ке поднял, но скрипт не видит дату из лоадаутов и температур (скорее всего из-за новой DSM). А Paessler PRTG Monitor устанавливать ради одной несчастной тачанки как-то не очень хочется...

 

 

Надо параметры для своего девайса уточнять, у меня ds415+, стоит dsm 6.1.3 update 7 - температуру дисков, системы, загрузку сети - показывает.

Bloody · 09.11.2017
А можно адаптировать скрипт под 10ку?

Адаптировано. Новая версия для чистой установки - в первом сообщении темы.

Подрубил на 5ю Марию, все взлетело кроме температур и лоадаутов... на них просто табличка "Cannot find data"

От версии БД не зависит количество снимаемых параметров. Как верно подсказали выше, стандартные настройки могли не подойти, и нужно вручную искать путь к датчикам.

SergeS · 10.11.2017
Адаптировано.

 

От версии БД не зависит количество снимаемых параметров. Как верно подсказали выше, стандартные настройки могли не подойти, и нужно вручную искать путь к датчикам.

 

Там вроде у 10 Марии порт другой, 3307 вместо 3306 у пятой. Если обе установлены, то точно порты разные, а если установлена только 10 - тогда не знаю.

Соответственно, там где идет подключение к базе данных (в Synology Monitoring как я понимаю, где то внутрях одного из php файлов), порт должен быть указан правильно.

Скорее всего что-то типа mysqli::__construct(...) или mysqli_connect(...), порт идет пятым параметром, если параметров 4 или меньше - значит будет использоваться дефолтный, который 3306.

 

Хотя может и что-то другой быть, например юзер не прописан или прописан, но с другими креденшиалс. Но я бы первым делом порты проверил, это проще всего.

Bloody · 10.11.2017
Там вроде у 10 Марии порт другой, 3307 вместо 3306 у пятой. Если обе установлены, то точно порты разные, а если установлена только 10 - тогда не знаю.

Всё так. Ещё и путь к сокету отличается. В функции коннекта к бд порт и сокет идут 5 и 6 параметром. Но у человека то по большей части система заработала, как я понял, лишь некоторые параметры не снимаются.

SergeyASV · 10.11.2017

А в чем плюс 10 маринки?

Bloody · 10.11.2017

Видимо в том, что она ставится теперь по умолчанию вместо пятой. Разницы в работе не заметил.

SergeyASV · 10.11.2017

Ясно, тогда пока не парюсь. Я думал может быстродействие получше.

4sag · 04.01.2018
-> Перевод предыдущей версии на MariaDB 10 возможен только через ручную правку скриптов и настроек.

А подробней ?)

Как добавить volume2 ? И количество дисков для мониторинга температуры ?

Bloody · 07.01.2018
А подробней ?)

Самая простая часть, прописать пути запуска новой бд. Сложнее - нужно перенести все данные и пользователей из старой бд.

 

Как добавить volume2 ? И количество дисков для мониторинга температуры ?

В последних версиях - нужно заново запустить установщик, и через него добавлять.

SergeyASV · 10.03.2018

Год назад заметил постоянную запись на диск. Ни какие манипуляции с пакетами не помогли избавиться от этой хрени, пришлось делать полный сброс с удалением всех данных и восстановлением из back up.

Теперь друга проблема - постоянное чтение с диска. Началось 4 марта и ни в какую не прекращается. Я так понимаю сино поставили задачу перепилить диск.

f5f8ba7595b4.png

72b55fe861f2.png

 

Bloody · 10.03.2018

Самодиагностика может какая запустилась. Смарт в порядке?

SergeyASV · 10.03.2018

Может и запустилась, только как понять какая, со смартом все хорошо.

krotishee · 22.05.2018

Добрый день!

 

Поставил версию от 10.11.2017. Датчики опрашиваются, данные в файлы текстовых логов пишутся, график по ним работает.

Но не заносятся значения в базу данных.

При этом если данные в базу ввести вручную, то график значения отобразит.

 

Если команду для записи в базу данных, указанную в скрипте bash ввести через консоль, подставив соответствующие значения переменных,

то выводится ошибка -ash: mysql: command not found.

 

Версия ОС: Linux DiskStation1 3.2.40 #15266 SMP Mon Mar 26 15:10:15 CST 2018 armv7l GNU/Linux synology_armada375_ds115

MariaDB 10, php7.

 

Подозреваю, что все дело именно в отсутствии клиента mysql.

Не подскажите ли куда копать и как быть?

 

Bloody · 22.05.2018

Действительно, для полноценной работы bash скрипта, в системе необходимо наличие клиента mysql.

krotishee · 22.05.2018
Действительно, для полноценной работы bash скрипта, в системе необходимо наличие клиента mysql.

Спасибо

Может присоветуете, какой клиент лучше использовать, чтоб лишний раз на грабли не наступать?

 

krotishee · 22.05.2018
Спасибо

Может присоветуете, какой клиент лучше использовать, чтоб лишний раз на грабли не наступать?

 

Bloody · 22.05.2018
EngInSite MySQL Client 2.0.4.230 ???

А что нибудь стандартное, типа «apt-get install mysql»? Команда от версии линукса и установщика может отличаться.

krotishee · 22.05.2018
А что нибудь стандартное, типа «apt-get install mysql»? Команда от версии линукса и установщика может отличаться.

Благодарю, буду продолжать стремиться к успеху )

krotishee · 23.05.2018
А что нибудь стандартное, типа «apt-get install mysql»? Команда от версии линукса и установщика может отличаться.

Не получается воспользоваться apt-get install. Выдает ошибку: -ash: apt-get: command not found.

 

Не подскажите ли Вы какой диспетчер пакетов используется в Linux DiskStation1 3.2.40 и как установить mysql-client?

Bloody · 23.05.2018
Linux synology_armada375_ds115

Я так понимаю, у вас станция DS115j? Если да, то менеджером пакетов из командной строки так просто не воспользуешься, всё делается через центр пакетов в веб-оболочке. Приложение PhpMyAdmin из центра пакетов установлено?

krotishee · 23.05.2018
Я так понимаю, у вас станция DS115j? Если да, то менеджером пакетов из командной строки так просто не воспользуешься, всё делается через центр пакетов в веб-оболочке. Приложение PhpMyAdmin из центра пакетов установлено?

Да, DS115, phpMyAdmin установлен.

Bloody · 23.05.2018

Тогда возникает вопрос, как в систему попадает mysql... Рискну предположить, что MariaDB 5 может его подтянуть, но утверждать не стану.

krotishee · 23.05.2018
Тогда возникает вопрос, как в систему попадает mysql... Рискну предположить, что MariaDB 5 может его подтянуть, но утверждать не стану.

стоит MariaDB 10, как такового mysql в системе нет

все манипуляции с базой данных проходят (если вносить данные вручную), но не работает запись данных в базу из bash скрипта.

полагаю, что нужен клиент который позволит вносить данные в базу из bash, но найти какой либо клиент, который можно установить в DS - в этом и есть проблема.

 

Или есть какое то другое решение?

Bloody · 23.05.2018

Обычно связки MariaDB и PhpMyAdmin достаточно для работы с базами данных mysql. Может что то делали с операционной системой Synology(DSM)? К сожалению, у меня нет DS115 или возможности установить начисто DSM на свою DiskStation для поиска зависимостей.

Команда

find / -maxdepth 3 -name mysql

что выдаёт?

ziz · 24.05.2018

Здравствуйте!

 

Та же проблема, что и у krotishee.

Версия мониторинга от 10.11.2017

Xpenology, DSM 6.1.6-15266, Apache 2.2 (2.4 почему-то не запускается), PHP 7.0, MariaDB 10, phpMyAdmin.

Текстовые логи пишутся, графики по ним строятся. Но в базу не заносятся. Пользователь в базе создан установщиком.

При запуске скрипта:

sh: line 30: mysql: command not found

sh: line 31: mysql: command not found

sh: line 32: mysql: command not found

sh: line 33: mysql: command not found

sh: line 34: mysql: command not found

Команда find / -maxdepth 3 -name mysql

от админа:

admin@NAS:~$ find / -maxdepth 3 -name mysql

find: `/etc/syslog-ng': Permission denied

find: `/etc/postgresql': Permission denied

find: `/etc/space': Permission denied

find: `/volume1/@iSCSI': Permission denied

find: `/volume1/lost+found': Permission denied

find: `/tmp/mc-root': Permission denied

find: `/tmp/.esd-0': Permission denied

find: `/tmp/pulse-PKdhtXMmr18n': Permission denied

find: `/tmp/iscsi': Permission denied

find: `/tmp/synocrond': Permission denied

find: `/volume2/lost+found': Permission denied

find: `/volume2/@iSCSI': Permission denied

find: `/var/net-snmp': Permission denied

find: `/var/target': Permission denied

find: `/var/crash': Permission denied

find: `/var.defaults/crash': Permission denied

find: `/root': Permission denied

find: `/etc.defaults/syslog-ng': Permission denied

find: `/etc.defaults/postgresql': Permission denied

find: `/lost+found': Permission denied

От рута ничего не выдаёт.

В центре пакетов ещё установлены Easy Bootstrap Installer v0.4-037 и iPKGui v1.0-241. Они могут мешать?

krotishee · 24.05.2018
Обычно связки MariaDB и PhpMyAdmin достаточно для работы с базами данных mysql. Может что то делали с операционной системой Synology(DSM)? К сожалению, у меня нет DS115 или возможности установить начисто DSM на свою DiskStation для поиска зависимостей.

Команда

find / -maxdepth 3 -name mysql

что выдаёт?

 

от root ничего не выдает. После выполнения команды консоль просто перешла на новую строку с небольшой задержкой.

 

от admin вот:

find: `/etc/postgresql': Permission denied

find: `/etc/syslog-ng': Permission denied

find: `/etc/space': Permission denied

find: `/etc.defaults/postgresql': Permission denied

find: `/etc.defaults/syslog-ng': Permission denied

find: `/lost+found': Permission denied

find: `/root': Permission denied

find: `/tmp/iscsi': Permission denied

find: `/tmp/synocrond': Permission denied

find: `/var.defaults/crash': Permission denied

find: `/volume1/lost+found': Permission denied

find: `/volume1/@autoupdate': Permission denied

find: `/volume1/@iSCSI': Permission denied

find: `/volume1/web': Permission denied

find: `/var/crash': Permission denied

find: `/var/db': Permission denied

find: `/var/target': Permission denied

 

Написал скрипт php, который получает необходимые данные и пишет их в базу. Но сталкиваюсь с похожей проблемой. Он запускается в среде cron, а там не установлен mysql и в php нет расширения mysqli.

 

При запуске из консоли выдает ошибку Fatal error: Call to undefined function mysqli_connect().

 

Сделал вывод ошибок из cron в файл - та же история.

 

Вставил в начало скрипта

$path_parts = pathinfo($_SERVER['SCRIPT_FILENAME']);

chdir($path_parts['dirname']);

 

Не помогает.

 

Что еще можно придумать?

 

Bloody · 24.05.2018
не установлен mysql и в php нет расширения mysqli.

Если мы говорим о Synology, то расширения php "включаются" в приложении Web Station.

Bloody · 24.05.2018
krotishee, ziz, установите пакет MariaDB 5 из стандартного репозитория. Можно даже не запускать его.
krotishee · 24.05.2018
Если мы говорим о Synology, то расширения php "включаются" в приложении Web Station.

да, штатные средства DS исследованы и в частности настройки php во вкладке web station, но они не предлагают решения как победить проблему со скриптом не заполняющим базу данных.

ziz · 24.05.2018
krotishee, ziz, установите пакет MariaDB 5 из стандартного репозитория. Можно даже не запускать его.

Странно... Пакет установил, он сразу запустился. Я его остановил. Всё заработало. Спасибо!

Теперь выглядит так:

admin@NAS:~$ find / -maxdepth 3 -name mysql

find: `/etc/syslog-ng': Permission denied

/etc/mysql

find: `/etc/postgresql': Permission denied

find: `/etc/space': Permission denied

find: `/volume1/@iSCSI': Permission denied

/volume1/@database/mysql

find: `/volume1/lost+found': Permission denied

find: `/tmp/.esd-0': Permission denied

find: `/tmp/pulse-PKdhtXMmr18n': Permission denied

find: `/tmp/iscsi': Permission denied

find: `/tmp/synocrond': Permission denied

find: `/volume2/lost+found': Permission denied

find: `/volume2/@iSCSI': Permission denied

find: `/var/net-snmp': Permission denied

find: `/var/target': Permission denied

find: `/var/crash': Permission denied

find: `/var.defaults/crash': Permission denied

find: `/root': Permission denied

find: `/etc.defaults/syslog-ng': Permission denied

find: `/etc.defaults/postgresql': Permission denied

/usr/lib/mysql

/usr/bin/mysql

/usr/share/mysql

find: `/lost+found': Permission denied

root@NAS:~# find / -maxdepth 3 -name mysql

/etc/mysql

/volume1/@database/mysql

/usr/lib/mysql

/usr/bin/mysql

/usr/share/mysql

 

krotishee · 24.05.2018
Странно... Пакет установил, он сразу запустился. Я его остановил. Всё заработало. Спасибо!

Теперь выглядит так:

Да, подтверждаю, дело было действительно в MariaDB 10

Спасибо, заработало как надо!

Bloody · 24.05.2018

Странно, что не устанавливается клиент mysql вместе с MariaDB 10, а только с 5ой версией.

krotishee · 24.05.2018
Странно, что не устанавливается клиент mysql вместе с MariaDB 10, а только с 5ой версией.

да, но факт на лицо

KingTiger · 25.05.2018
Странно, что не устанавливается клиент mysql вместе с MariaDB 10, а только с 5ой версией.

 

 

его надо включить в webstation в настройках профиля php по умолчанию

Bloody · 25.05.2018
в настройках профиля php

В настройках профиля php включаются модули, доступные для скриптов php, разве нет? Мы же говорим про внутрисистемные процессы, обращение к базам mysql через bash.

KingTiger · 26.05.2018
В настройках профиля php включаются модули, доступные для скриптов php, разве нет? Мы же говорим про внутрисистемные процессы, обращение к базам mysql через bash.

 

 

Я писал комментарий только к фразе "Странно, что не устанавливается клиент mysql вместе с MariaDB 10, а только с 5ой версией."

И хотел сказать только что он устанавливается с MariaDB 10, но его надо принудительно активировать и все.

4sag · 28.05.2018
Я писал комментарий только к фразе "Странно, что не устанавливается клиент mysql вместе с MariaDB 10, а только с 5ой версией."

И хотел сказать только что он устанавливается с MariaDB 10, но его надо принудительно активировать и все.

не ставится mysql клиент с MariaDB10 это 100% !

где вы там собрались его активировать ?)

KingTiger · 01.06.2018
не ставится mysql клиент с MariaDB10 это 100% !

...

 

я не правильно выразился, конечно он не ставится с MariaDB, ни с 5-ой, ни с 10-й.

в нашем случае нужен mysql - модуль php

 

...где вы там собрались его активировать ?)

 

 

php.jpg

Bloody · 01.06.2018

В php, как раз, нужен модуль mysqli, это для отрисовки графиков. А для их занесения в базу данных - нужен mysql клиент в самой системе, доступный из баш-а.

KingTiger · 01.06.2018
В php, как раз, нужен модуль mysqli, это для отрисовки графиков. А для их занесения в базу данных - нужен mysql клиент в самой системе, доступный из баш-а.

 

может быть, не спорю, когда я настраивал у себя, то мне помогло включение этих двух модулей - mysql и mysqli - что и показал на картинке, возможно просто совпадение, я в этом не спец

SergeyASV · 03.06.2018

Bloody

Привет, на хоботе нашу переписку приватную потёрли, пишу тут.

У нас перемешение по архиву стрелками прыжок на сутки и семь, реально сделать на 12 часов и сутки?

4sag · 04.06.2018
я в этом не спец

так о чем мы тогда говорим ?

4sag · 04.06.2018
Bloody

12 часов и сутки?

а смысл ?

Bloody · 04.06.2018
а смысл ?

Если смотреть графики после полуночи, в час-два ночи, то динамику изменения сложно уловить. Листаешь на день назад-вперёд... А за неделю, уже точность не та.

Bloody · 17.06.2018
реально сделать на 12 часов...?

Выложил новую версию. Возможно, это то, что нужно. Только одно серьёзное НО. Пришлось отказаться от текстовых логов.

SergeyASV · 19.06.2018
Выложил новую версию. Возможно, это то, что нужно. Только одно серьёзное НО. Пришлось отказаться от текстовых логов.

В смысле теперь данные из текстового файла не читаются?

Поковырял сегодня твои файлы, разница с моими давольно большая, но изменения нашёл и "примонтировал". Вроде все работает, спасибо.

Возникло желание посмотреть твою версию с инсталяшкой и т.д. Если я свою папку mon переименую и запущу инсталлятор, то он мои собранные за эти годы логи не затрет?

З.ы. Тоже сегодня подумал отказаться от логов в текстовых файлах, за 3 года они мне ни разу не понадобились, что зря писать.

Bloody · 19.06.2018
собранные за эти годы логи не затрет?

Текстовые точно не тронет. Да и функций удаления из БД не припомню(только если при импорте старых данных). Главное, указать на первом шаге имя и пароль пользователя БД.

Imperator · 20.06.2018

Расскажите про ESP8266 и nooLite PR1132. Как их подключать к накопителю?

Bloody · 20.06.2018
nooLite PR1132

Эту штуку кто то с этой ветки прикручивал, базовая настройка в конфигураторе должна быть(адреса, откуда данные дёргать).

По ESP попытаюсь вспомнить, что и где брал для настройки модуля, чуть позже напишу. Базовая конфигурация - плата на основе ESP, датчик температуры/влажности, питание от usb через конвертор 5->3.3В, и специальная прошивка с необходимым функционалом(брал готовую).

Imperator · 21.06.2018

Поставил с нуля последнюю версию. Данные в БД попадают (maria10), а вместо графиков только preload.gif. Что может быть?

Bloody · 21.06.2018
Что может быть?

Как вариант, проверить в xml файле конфига логин-пароль к БД. Или ошибка в скриптах создания этих xml. Надо перепроверить.

----------------------------

Распаковал в соседнюю папку, запустил конфигуратор, ввёл пароль к ранее созданному пользователю БД graph, и настроил всё, что спрашивает. Единственная ошибка, что встретилась - не хватало прав доступа к папкам mon/lib и mon/install/lib(поставил 777). Проверил отображение графиков - всё на месте.

 

График за сутки-неделю-месяц так же крутится, и ничего не показывает? А в текстовых данных(справа кнопочка) что? В другом браузере попробовать?

Imperator · 22.06.2018

\mon\lib>conf_serv.xml - пароль правильный.

 

Сутки и неделя показывают пустую рамку вместо картинки, месяц тоже preload.gif.

 

Текстовые выводят окно "something else other than 200 was returned". Браузеры 3 разных.

Bloody · 22.06.2018
something else other than 200 was returned

Попробуйте на папку «mon» и её содержимое права 777 поставить

Imperator · 22.06.2018

Я папке mon присвоил пользователя и группу http и текстовые появились. Графики пока нет.

Imperator · 22.06.2018

Всё починил. В инсталяционном архиве у вас разрешения от балды. Поправил как в первом сообщении и всё заработало.

данила · 06.03.2019

пару дополнений по сабжу

 

для ds918+ путь по температуре проца такой:

/sys/class/hwmon/hwmon0/

 

PHP GD нужно активировать как впрочем как выше было упомянуто и mysqli

 

OID по умолчанию выставлено на второй интерфейс и тут нужно смотреть по каждому девайсу

например:

nas918:/# snmpwalk -Ov -v 2c -c public 127.0.0.1 1.3.6.1.2.1.31.1.1.1.1
STRING: lo
STRING: sit0
STRING: eth0
STRING: eth1
STRING: ovs-system
STRING: ovs_bond0
STRING: docker_gwbridge
STRING: docker0
STRING: docker-fce71362
STRING: dockerd7178cd

root@nas918:/# snmpwalk -Ov -v 2c -c public 127.0.0.1 1.3.6.1.2.1.31.1.1.1.10
Counter64: 264194773
Counter64: 0
Counter64: 6191432598
Counter64: 50019
Counter64: 0
Counter64: 5967643835
Counter64: 0
Counter64: 0
Counter64: 5981048031
Counter64: 5981048679

 

третий выдаёт

snmpwalk -Ov -v 2c -c public 127.0.0.1 1.3.6.1.2.1.31.1.1.1.6.3

а вот желательно ещё и bond0 но почемуто:

nas918:/# snmpwalk -Ov -v 2c -c public 127.0.0.1 1.3.6.1.2.1.31.1.1.1.6.6 | awk '{print $NF}'
OID

хотя

nas918:/# snmpwalk -Ov -v 2c -c public 127.0.0.1 1.3.6.1.2.1.31.1.1.1.6.7 | awk '{print $NF}'
5977371462

upd

немного разобрался, оказывается 6,8,9 нету

Found standard interfaces:
1:lo: (001) lo Traffic,Connected,10 MBit/s,Software Loopback,lo, 64 Bit
2:sit0: (002) sit0 Traffic,Not Connected,,Tunnel,sit0, 64 Bit
3:eth0: (003) eth0 Traffic,Connected,1 GBit/s,Ethernet,eth0, 64 Bit
4:eth1: (004) eth1 Traffic,Connected,1 GBit/s,Ethernet,eth1, 64 Bit
5:ovs-system: (005) ovs-system Traffic,Not Connected,,Ethernet,ovs-system, 64 Bit
7:ovs_bond0: (007) ovs_bond0 Traffic,Connected,,Ethernet,ovs_bond0, 64 Bit
10:docker_gwbridge: (010) docker_gwbridge Traffic,Not Connected,,Ethernet,docker_gwbridge, 64 Bit
11:docker0: (011) docker0 Traffic,Not Connected,,Ethernet,docker0, 64 Bit
12:docker-fce71362: (012) docker-fce71362 Traffic,Connected,,Ethernet,docker-fce71362, 64 Bit
14:dockerd7178cd: (014) dockerd7178cd Traffic,Connected,10 GBit/s,Ethernet,dockerd7178cd, 64 Bit

 

ну и ешё по сети с таким конфигом

lan0_in=$(snmpwalk -Ov -v 2c -c public 127.0.0.1 1.3.6.1.2.1.31.1.1.1.6.3 | awk '{print $NF}')
lan0_out=$(snmpwalk -Ov -v 2c -c public 127.0.0.1 1.3.6.1.2.1.31.1.1.1.10.3 | awk '{print $NF}')
lan1_in=$(snmpwalk -Ov -v 2c -c public 127.0.0.1 1.3.6.1.2.1.31.1.1.1.6.7 | awk '{print $NF}')
lan1_out=$(snmpwalk -Ov -v 2c -c public 127.0.0.1 1.3.6.1.2.1.31.1.1.1.10.7 | awk '{print $NF}')

 

второй лан упрямо не хочет казать хоть тресни

 

кто нибудь может на пальцах про коофициент объяснить, по какой формуле считаем

<corrcoeff>0.00000762939/300</corrcoeff>

SergeyASV · 23.03.2019
кто нибудь может на пальцах про коофициент объяснить, по какой формуле считаем

<corrcoeff>0.00000762939/300</corrcoeff>

Я сейчас всех тонкостей не помню, давно считали, НАС отдает инфу в пакетах, их пересчитали в мегабиты, т.к. опрос у нас раз в 5 минут, а на графике mbit/sec, то пересчитали еще и время в итоге получился этот коэффициент. Я его записал

$lancoeff     = 0.0000000254;

, чтобы не нагружать дохлый процессор НАС-а делением.

shemmy · 20.04.2019

Доброго времени суток, друзья!

Помогите, решил прикрутить мониторинг к синьке 412+.

 

Прочитав описание, поставил phpmyadmin, mariadb10. Скачал и распаковал архив.

Открываю url mon/install, появляется страница конфигуратора.

При переходе на следующий шаг вываливается страница "405 Not Allowed"

 

Пытался играться с правами доступа к файлам - все бестолку.

 

Подскажите в какую сторону смотреть.

 

PS Добавлено позже.

Понял, что проблема со стороны веб сервисов. В итоге поставил полный зоопарк из 2х версий апача, 3х версий php, крутил web station во всевозможных вариантах - открылась вторая страница конфигуратора, но она пустая. Права на файлы уже везде стоят 777. Что дальше ломать - не знаю :rolleyes:

 

Подскажите оптимальные настройки синьки - web station, apache, php?

Shafrom · 01.05.2019
Доброго времени суток, друзья!

Помогите, решил прикрутить мониторинг к синьке 412+.

Прочитав описание, поставил phpmyadmin, mariadb10. Скачал и распаковал архив.

Открываю url mon/install, появляется страница конфигуратора.

При переходе на следующий шаг вываливается страница "405 Not Allowed"

 

Пытался играться с правами доступа к файлам - все бестолку.

 

У меня аналогичная проблема, дальше второй страницы дойти не могу - ошибка "405 Not Allowed". Делал все строго по инструкции (проверял много раз). Кто подскажет как решить этот вопрос?

Мое устройство Synology DS918+

SergeyASV · 18.11.2019

Bloody

Привет, давно не общались :)

Помнишь ты телегу прикручивал нашему мониторингу ? Можешь расписать как делал ?

Bloody · 21.11.2019
shemmy, Shafrom, возможно, какие то ограничения со стороны систем безопасности. Попробую посмотреть на досуге, что такого нового в обновках DS.
PnServer · 06.01.2020

подскажите пожалуйста где найти температуру процессора на 1618+

cat /sys/devices/platform/coretemp.0/temp2_input --- не работает

loveburn · 26.01.2020
shemmy, Shafrom, возможно, какие то ограничения со стороны систем безопасности. Попробую посмотреть на досуге, что такого нового в обновках DS.

Добрый день, спасибо за ваши труды, но я никак не могу установить мониторинг, всё делаю по инструкции... папки, права доступа , нужные сервисы и.тд.

после перехода на страницу установки и вписывания пароля рут, который установился при установке марии10 жмакаю на следующий шаг и получаю "Не удалось подключиться к localhost от имени root. Проверьте правильность пароля: No such file or directory" пробовал так-же создать пользователя в админпхп graph с правами SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, INDEX, DROP но реации 0 .... что я делаю не так???? да железка у меня Сино 918+

заранее спасибо

 

paryav · 11.06.2020

Чуток тем у кого не получается на последней версии DSM запустить:

How to install:

1.Install Web Station

2.Install MariaDb10

3.Run MariaDb10 and activate network Access

4.Run Web Station

5.Select Default php profile 5.6

6.Server ngnix

7.Activate in php profile next plugin: gd mysql mysqli

8.Avoid error in password policy replace in file /mon/install/step2.php

$usqlpass = generate_password(10);

to

$usqlpass = "Yuor passwd";

9.Set in final script path to mysql:

export PATH=$PATH:/usr/local/mariadb10/bin

 

if yuor want more temprature for drive edit /mon/install/lib/install.xml

MIKE MC · 09.11.2021

Привет!

Схожая проблема. Всё сделано до этапа ввода пароля root.  Где его задать? Пустое поле не принимает (на скрине).  Если задаю какой-либо - то ошибка другая (скрин).  myAdmin, MariaDB  - установлены и работают (скрин).

DSM - 5.2. MariaDb - 5.5

2021-11-09_13-23-31.png

2021-11-09_13-19-08.png

2021-11-09_13-20-08.png